summaryrefslogtreecommitdiff
path: root/together/node_modules/formidable/src/plugins/octetstream.js
diff options
context:
space:
mode:
Diffstat (limited to 'together/node_modules/formidable/src/plugins/octetstream.js')
-rw-r--r--together/node_modules/formidable/src/plugins/octetstream.js86
1 files changed, 0 insertions, 86 deletions
diff --git a/together/node_modules/formidable/src/plugins/octetstream.js b/together/node_modules/formidable/src/plugins/octetstream.js
deleted file mode 100644
index 96fee40..0000000
--- a/together/node_modules/formidable/src/plugins/octetstream.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/* eslint-disable no-underscore-dangle */
-
-'use strict';
-
-const OctetStreamParser = require('../parsers/OctetStream');
-
-// the `options` is also available through the `options` / `formidable.options`
-module.exports = function plugin(formidable, options) {
- // the `this` context is always formidable, as the first argument of a plugin
- // but this allows us to customize/test each plugin
-
- /* istanbul ignore next */
- const self = this || formidable;
-
- if (/octet-stream/i.test(self.headers['content-type'])) {
- init.call(self, self, options);
- }
-
- return self;
-};
-
-// Note that it's a good practice (but it's up to you) to use the `this.options` instead
-// of the passed `options` (second) param, because when you decide
-// to test the plugin you can pass custom `this` context to it (and so `this.options`)
-function init(_self, _opts) {
- this.type = 'octet-stream';
- const originalFilename = this.headers['x-file-name'];
- const mimetype = this.headers['content-type'];
-
- const thisPart = {
- originalFilename,
- mimetype,
- };
- const newFilename = this._getNewName(thisPart);
- const filepath = this._joinDirectoryName(newFilename);
- const file = this._newFile({
- newFilename,
- filepath,
- originalFilename,
- mimetype,
- });
-
- this.emit('fileBegin', originalFilename, file);
- file.open();
- this.openedFiles.push(file);
- this._flushing += 1;
-
- this._parser = new OctetStreamParser(this.options);
-
- // Keep track of writes that haven't finished so we don't emit the file before it's done being written
- let outstandingWrites = 0;
-
- this._parser.on('data', (buffer) => {
- this.pause();
- outstandingWrites += 1;
-
- file.write(buffer, () => {
- outstandingWrites -= 1;
- this.resume();
-
- if (this.ended) {
- this._parser.emit('doneWritingFile');
- }
- });
- });
-
- this._parser.on('end', () => {
- this._flushing -= 1;
- this.ended = true;
-
- const done = () => {
- file.end(() => {
- this.emit('file', 'file', file);
- this._maybeEnd();
- });
- };
-
- if (outstandingWrites === 0) {
- done();
- } else {
- this._parser.once('doneWritingFile', done);
- }
- });
-
- return this;
-}