Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/form-data/lib/form_data.js')
-rw-r--r--node_modules/form-data/lib/form_data.js28
1 files changed, 27 insertions, 1 deletions
diff --git a/node_modules/form-data/lib/form_data.js b/node_modules/form-data/lib/form_data.js
index 3a1bb82b1..9c07e32c0 100644
--- a/node_modules/form-data/lib/form_data.js
+++ b/node_modules/form-data/lib/form_data.js
@@ -230,7 +230,7 @@ FormData.prototype._getContentDisposition = function(value, options) {
filename = path.basename(options.filename || value.name || value.path);
} else if (value.readable && value.hasOwnProperty('httpVersion')) {
// or try http response
- filename = path.basename(value.client._httpMessage.path);
+ filename = path.basename(value.client._httpMessage.path || '');
}
if (filename) {
@@ -313,6 +313,32 @@ FormData.prototype.getBoundary = function() {
return this._boundary;
};
+FormData.prototype.getBuffer = function() {
+ var dataBuffer = new Buffer.alloc( 0 );
+ var boundary = this.getBoundary();
+
+ // Create the form content. Add Line breaks to the end of data.
+ for (var i = 0, len = this._streams.length; i < len; i++) {
+ if (typeof this._streams[i] !== 'function') {
+
+ // Add content to the buffer.
+ if(Buffer.isBuffer(this._streams[i])) {
+ dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]);
+ }else {
+ dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]);
+ }
+
+ // Add break after content.
+ if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) {
+ dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] );
+ }
+ }
+ }
+
+ // Add the footer and return the Buffer object.
+ return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] );
+};
+
FormData.prototype._generateBoundary = function() {
// This generates a 50 character boundary similar to those used by Firefox.
// They are optimized for boyer-moore parsing.