1 line
9.6 KiB
JSON
1 line
9.6 KiB
JSON
{"ast":null,"code":"'use strict';\n\nvar uuid = require('uuid/v4');\n\nvar CombinedStream = require('combined-stream');\n\nvar isstream = require('isstream');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction Multipart(request) {\n this.request = request;\n this.boundary = uuid();\n this.chunked = false;\n this.body = null;\n}\n\nMultipart.prototype.isChunked = function (options) {\n var self = this;\n var chunked = false;\n var parts = options.data || options;\n\n if (!parts.forEach) {\n self.request.emit('error', new Error('Argument error, options.multipart.'));\n }\n\n if (options.chunked !== undefined) {\n chunked = options.chunked;\n }\n\n if (self.request.getHeader('transfer-encoding') === 'chunked') {\n chunked = true;\n }\n\n if (!chunked) {\n parts.forEach(function (part) {\n if (typeof part.body === 'undefined') {\n self.request.emit('error', new Error('Body attribute missing in multipart.'));\n }\n\n if (isstream(part.body)) {\n chunked = true;\n }\n });\n }\n\n return chunked;\n};\n\nMultipart.prototype.setHeaders = function (chunked) {\n var self = this;\n\n if (chunked && !self.request.hasHeader('transfer-encoding')) {\n self.request.setHeader('transfer-encoding', 'chunked');\n }\n\n var header = self.request.getHeader('content-type');\n\n if (!header || header.indexOf('multipart') === -1) {\n self.request.setHeader('content-type', 'multipart/related; boundary=' + self.boundary);\n } else {\n if (header.indexOf('boundary') !== -1) {\n self.boundary = header.replace(/.*boundary=([^\\s;]+).*/, '$1');\n } else {\n self.request.setHeader('content-type', header + '; boundary=' + self.boundary);\n }\n }\n};\n\nMultipart.prototype.build = function (parts, chunked) {\n var self = this;\n var body = chunked ? new CombinedStream() : [];\n\n function add(part) {\n if (typeof part === 'number') {\n part = part.toString();\n }\n\n return chunked ? body.append(part) : body.push(Buffer.from(part));\n }\n\n if (self.request.preambleCRLF) {\n add('\\r\\n');\n }\n\n parts.forEach(function (part) {\n var preamble = '--' + self.boundary + '\\r\\n';\n Object.keys(part).forEach(function (key) {\n if (key === 'body') {\n return;\n }\n\n preamble += key + ': ' + part[key] + '\\r\\n';\n });\n preamble += '\\r\\n';\n add(preamble);\n add(part.body);\n add('\\r\\n');\n });\n add('--' + self.boundary + '--');\n\n if (self.request.postambleCRLF) {\n add('\\r\\n');\n }\n\n return body;\n};\n\nMultipart.prototype.onRequest = function (options) {\n var self = this;\n var chunked = self.isChunked(options);\n var parts = options.data || options;\n self.setHeaders(chunked);\n self.chunked = chunked;\n self.body = self.build(parts, chunked);\n};\n\nexports.Multipart = Multipart;","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/request/lib/multipart.js"],"names":["uuid","require","CombinedStream","isstream","Buffer","Multipart","request","boundary","chunked","body","prototype","isChunked","options","self","parts","data","forEach","emit","Error","undefined","getHeader","part","setHeaders","hasHeader","setHeader","header","indexOf","replace","build","add","toString","append","push","from","preambleCRLF","preamble","Object","keys","key","postambleCRLF","onRequest","exports"],"mappings":"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","sourcesContent":["'use strict'\n\nvar uuid = require('uuid/v4')\nvar CombinedStream = require('combined-stream')\nvar isstream = require('isstream')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction Multipart (request) {\n this.request = request\n this.boundary = uuid()\n this.chunked = false\n this.body = null\n}\n\nMultipart.prototype.isChunked = function (options) {\n var self = this\n var chunked = false\n var parts = options.data || options\n\n if (!parts.forEach) {\n self.request.emit('error', new Error('Argument error, options.multipart.'))\n }\n\n if (options.chunked !== undefined) {\n chunked = options.chunked\n }\n\n if (self.request.getHeader('transfer-encoding') === 'chunked') {\n chunked = true\n }\n\n if (!chunked) {\n parts.forEach(function (part) {\n if (typeof part.body === 'undefined') {\n self.request.emit('error', new Error('Body attribute missing in multipart.'))\n }\n if (isstream(part.body)) {\n chunked = true\n }\n })\n }\n\n return chunked\n}\n\nMultipart.prototype.setHeaders = function (chunked) {\n var self = this\n\n if (chunked && !self.request.hasHeader('transfer-encoding')) {\n self.request.setHeader('transfer-encoding', 'chunked')\n }\n\n var header = self.request.getHeader('content-type')\n\n if (!header || header.indexOf('multipart') === -1) {\n self.request.setHeader('content-type', 'multipart/related; boundary=' + self.boundary)\n } else {\n if (header.indexOf('boundary') !== -1) {\n self.boundary = header.replace(/.*boundary=([^\\s;]+).*/, '$1')\n } else {\n self.request.setHeader('content-type', header + '; boundary=' + self.boundary)\n }\n }\n}\n\nMultipart.prototype.build = function (parts, chunked) {\n var self = this\n var body = chunked ? new CombinedStream() : []\n\n function add (part) {\n if (typeof part === 'number') {\n part = part.toString()\n }\n return chunked ? body.append(part) : body.push(Buffer.from(part))\n }\n\n if (self.request.preambleCRLF) {\n add('\\r\\n')\n }\n\n parts.forEach(function (part) {\n var preamble = '--' + self.boundary + '\\r\\n'\n Object.keys(part).forEach(function (key) {\n if (key === 'body') { return }\n preamble += key + ': ' + part[key] + '\\r\\n'\n })\n preamble += '\\r\\n'\n add(preamble)\n add(part.body)\n add('\\r\\n')\n })\n add('--' + self.boundary + '--')\n\n if (self.request.postambleCRLF) {\n add('\\r\\n')\n }\n\n return body\n}\n\nMultipart.prototype.onRequest = function (options) {\n var self = this\n\n var chunked = self.isChunked(options)\n var parts = options.data || options\n\n self.setHeaders(chunked)\n self.chunked = chunked\n self.body = self.build(parts, chunked)\n}\n\nexports.Multipart = Multipart\n"]},"metadata":{},"sourceType":"script"} |