UNPKG

formflux

Version:

A package to upload files to a server and parsing multipart-formData requests

486 lines (464 loc) 20.3 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _FormFlux = require("./FormFlux.Types"); exports.options = _FormFlux.options; exports.optionFields = _FormFlux.optionFields; exports.optionSingle = _FormFlux.optionSingle; exports.File = _FormFlux.File; var _ExtractContent = _interopRequireDefault(require("./ExtractContent")); var _WriteFileContent = _interopRequireDefault(require("./WriteFileContent")); var _SetBodyContentToReq = _interopRequireDefault(require("./SetBodyContentToReq")); var _setFileNameToBody = _interopRequireDefault(require("./setFileNameToBody")); var _setDatatoReqobj = _interopRequireDefault(require("./setDatatoReqobj")); var _EventHandlers = _interopRequireDefault(require("./EventHandlers")); var _FormFluxError = _interopRequireDefault(require("./FormFluxError")); exports.FormfluxError = _FormFluxError.default; function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class Formflux { static diskStorage(options) { return { any() { return async function (req, res, next) { var _req$headers$content; let obj = { "originalReq": "", "modifiedReq": Buffer.from(""), "data": [], "content": [], "metaData": [], "mimeType": [], "fieldNameBody": [], "fileName": [], "modifiedFileName": [], "contentBody": [], "fieldNameFile": [], "filePath": [], "filesize": [], "streams": [] }; let buff = []; let reqType = req.headers["content-type"]; if (reqType && !reqType.includes("multipart/form-data")) throw new _FormFluxError.default("Invalid Request Type.Expected multipart/form-data", 400); let boundary = (_req$headers$content = req.headers["content-type"]) == null ? void 0 : _req$headers$content.split("boundary=")[1]; req.on("data", chunk => { buff.push(chunk); }); req.on("end", () => { try { var _obj$modifiedReq$toSt; obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer obj.data = (_obj$modifiedReq$toSt = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt.split(`--${boundary}`); // separating the boundary obj.data.pop(); obj.data.shift(); //*****Defaults***** //To*********extract content new _ExtractContent.default(obj, options, null, null).extraction(); //To*********SetFileDataToReqObj new _setDatatoReqobj.default(obj).populate(); let writeBool = false; let parseBool = false; let checkCompletion = (writeComplete, parsecomplete) => { if (writeComplete && parsecomplete) next(); }; _EventHandlers.default.on("parseEnd", message => { parseBool = true; checkCompletion(writeBool, parseBool); }); _EventHandlers.default.on("writeEnd", message => { writeBool = true; checkCompletion(writeBool, parseBool); }); new _WriteFileContent.default(req, obj, options, "any", "disk").writeContent(); if (options.attachFileToReqBody && options.attachFileToReqBody == true) new _setFileNameToBody.default(obj).setFileNames(req); new _SetBodyContentToReq.default(obj).setBody(req); } catch (err) { next(err); } }); req.on("error", () => { next(new _FormFluxError.default("Error in recieving request", 500)); }); }; }, fields(optionFields) { return async function (req, res, next) { var _req$headers$content2; let obj = { "originalReq": "", "modifiedReq": Buffer.from(""), "data": [], "content": [], "metaData": [], "mimeType": [], "fieldNameBody": [], "fileName": [], "modifiedFileName": [], "contentBody": [], "fieldNameFile": [], "filePath": [], "filesize": [], "streams": [] }; let buff = []; let reqType = req.headers["content-type"]; if (reqType && !reqType.includes("multipart/form-data")) throw new _FormFluxError.default("Invalid Request Type.Expected multipart/form-data", 400); let boundary = (_req$headers$content2 = req.headers["content-type"]) == null ? void 0 : _req$headers$content2.split("boundary=")[1]; req.on("data", chunk => { buff.push(chunk); }); req.on("end", () => { try { var _obj$modifiedReq$toSt2; obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer obj.data = (_obj$modifiedReq$toSt2 = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt2.split(`--${boundary}`); // separating the boundary obj.data.pop(); obj.data.shift(); //*****Defaults***** //To*********extract content new _ExtractContent.default(obj, options, optionFields, null).extraction(); //To*********SetFileDataToReqObj new _setDatatoReqobj.default(obj).populate(); let writeBool = false; let parseBool = false; let checkCompletion = (writeComplete, parsecomplete) => { if (writeComplete && parsecomplete) next(); }; _EventHandlers.default.on("parseEnd", message => { parseBool = true; checkCompletion(writeBool, parseBool); }); _EventHandlers.default.on("writeEnd", message => { writeBool = true; checkCompletion(writeBool, parseBool); }); new _WriteFileContent.default(req, obj, options, "fields", "disk").writeContent(); // new setFileContentToReq(obj).setFileNames(req); if (options.attachFileToReqBody && options.attachFileToReqBody == true) new _setFileNameToBody.default(obj).setFileNames(req); new _SetBodyContentToReq.default(obj).setBody(req); } catch (err) { next(err); } }); req.on("error", () => { next(new _FormFluxError.default("Error in recieving request", 500)); }); }; }, single(field) { return async function (req, res, next) { var _req$headers$content3; let obj = { "originalReq": "", "modifiedReq": Buffer.from(""), "data": [], "content": [], "metaData": [], "mimeType": [], "fieldNameBody": [], "fileName": [], "modifiedFileName": [], "contentBody": [], "fieldNameFile": [], "filePath": [], "filesize": [], "streams": [] }; let buff = []; let reqType = req.headers["content-type"]; if (reqType && !reqType.includes("multipart/form-data")) throw new _FormFluxError.default("Invalid Request Type.Expected multipart/form-data", 400); let boundary = (_req$headers$content3 = req.headers["content-type"]) == null ? void 0 : _req$headers$content3.split("boundary=")[1]; req.on("data", chunk => { buff.push(chunk); }); req.on("end", () => { try { var _obj$modifiedReq$toSt3; obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer obj.data = (_obj$modifiedReq$toSt3 = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt3.split(`--${boundary}`); // separating the boundary obj.data.pop(); obj.data.shift(); //*****Defaults***** //To*********extract content new _ExtractContent.default(obj, options, null, field).extraction(); //To*********SetFileDataToReqObj new _setDatatoReqobj.default(obj).populate(); let writeBool = false; let parseBool = false; let checkCompletion = (writeComplete, parsecomplete) => { if (writeComplete && parsecomplete) next(); }; _EventHandlers.default.on("parseEnd", message => { parseBool = true; checkCompletion(writeBool, parseBool); }); _EventHandlers.default.on("writeEnd", message => { writeBool = true; checkCompletion(writeBool, parseBool); }); new _WriteFileContent.default(req, obj, options, "single", "disk").writeContent(); if (options.attachFileToReqBody && options.attachFileToReqBody == true) new _setFileNameToBody.default(obj).setFileNames(req); new _SetBodyContentToReq.default(obj).setBody(req); } catch (err) { next(err); } }); req.on("error", () => { next(new _FormFluxError.default("Error in recieving request", 500)); }); }; } }; } static memoryStorage(options) { return { any() { return async function (req, res, next) { var _req$headers$content4; let obj = { "originalReq": "", "modifiedReq": Buffer.from(""), "data": [], "content": [], "metaData": [], "mimeType": [], "fieldNameBody": [], "fileName": [], "modifiedFileName": [], "contentBody": [], "fieldNameFile": [], "filePath": [], "filesize": [], "streams": [] }; let buff = []; let reqType = req.headers["content-type"]; if (reqType && !reqType.includes("multipart/form-data")) throw new _FormFluxError.default("Invalid Request Type.Expected multipart/form-data", 400); let boundary = (_req$headers$content4 = req.headers["content-type"]) == null ? void 0 : _req$headers$content4.split("boundary=")[1]; req.on("data", chunk => { buff.push(chunk); }); req.on("end", () => { try { var _obj$modifiedReq$toSt4; obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer obj.data = (_obj$modifiedReq$toSt4 = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt4.split(`--${boundary}`); // separating the boundary obj.data.pop(); obj.data.shift(); //*****Defaults***** //To*********extract content new _ExtractContent.default(obj, options, null, null).extraction(); //To*********SetFileDataToReqObj new _setDatatoReqobj.default(obj).populate(); let writeBool = false; let parseBool = false; let checkCompletion = (writeComplete, parsecomplete) => { if (writeComplete && parsecomplete) next(); }; _EventHandlers.default.on("parseEnd", message => { parseBool = true; checkCompletion(writeBool, parseBool); }); _EventHandlers.default.on("writeEnd", message => { writeBool = true; checkCompletion(writeBool, parseBool); }); new _WriteFileContent.default(req, obj, options, "any", "memory").writeContent(); if (options.attachFileToReqBody && options.attachFileToReqBody == true) new _setFileNameToBody.default(obj).setFileNames(req); new _SetBodyContentToReq.default(obj).setBody(req); } catch (err) { next(err); } }); req.on("error", () => { next(new _FormFluxError.default("Error in recieving request", 500)); }); }; }, fields(optionFields) { return async function (req, res, next) { var _req$headers$content5; let obj = { "originalReq": "", "modifiedReq": Buffer.from(""), "data": [], "content": [], "metaData": [], "mimeType": [], "fieldNameBody": [], "fileName": [], "modifiedFileName": [], "contentBody": [], "fieldNameFile": [], "filePath": [], "filesize": [], "streams": [] }; let buff = []; let reqType = req.headers["content-type"]; if (reqType && !reqType.includes("multipart/form-data")) throw new _FormFluxError.default("Invalid Request Type.Expected multipart/form-data", 400); let boundary = (_req$headers$content5 = req.headers["content-type"]) == null ? void 0 : _req$headers$content5.split("boundary=")[1]; req.on("data", chunk => { buff.push(chunk); }); req.on("end", () => { try { var _obj$modifiedReq$toSt5; obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer obj.data = (_obj$modifiedReq$toSt5 = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt5.split(`--${boundary}`); // separating the boundary obj.data.pop(); obj.data.shift(); //*****Defaults***** //To*********extract content new _ExtractContent.default(obj, options, optionFields, null).extraction(); //To*********SetFileDataToReqObj new _setDatatoReqobj.default(obj).populate(); let writeBool = false; let parseBool = false; let checkCompletion = (writeComplete, parsecomplete) => { if (writeComplete && parsecomplete) next(); }; _EventHandlers.default.on("parseEnd", message => { parseBool = true; checkCompletion(writeBool, parseBool); }); _EventHandlers.default.on("writeEnd", message => { writeBool = true; checkCompletion(writeBool, parseBool); }); new _WriteFileContent.default(req, obj, options, "fields", "memory").writeContent(); if (options.attachFileToReqBody && options.attachFileToReqBody == true) new _setFileNameToBody.default(obj).setFileNames(req); new _SetBodyContentToReq.default(obj).setBody(req); } catch (err) { next(err); } }); req.on("error", () => { next(new _FormFluxError.default("Error in recieving request", 500)); }); }; }, single(field) { return async function (req, res, next) { var _req$headers$content6; let obj = { "originalReq": "", "modifiedReq": Buffer.from(""), "data": [], "content": [], "metaData": [], "mimeType": [], "fieldNameBody": [], "fileName": [], "modifiedFileName": [], "contentBody": [], "fieldNameFile": [], "filePath": [], "filesize": [], "streams": [] }; let buff = []; let reqType = req.headers["content-type"]; if (reqType && !reqType.includes("multipart/form-data")) throw new _FormFluxError.default("Invalid Request Type.Expected multipart/form-data", 400); let boundary = (_req$headers$content6 = req.headers["content-type"]) == null ? void 0 : _req$headers$content6.split("boundary=")[1]; req.on("data", chunk => { buff.push(chunk); }); req.on("end", () => { try { var _obj$modifiedReq$toSt6; obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer obj.data = (_obj$modifiedReq$toSt6 = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt6.split(`--${boundary}`); // separating the boundary obj.data.pop(); obj.data.shift(); //*****Defaults***** //To*********extract content new _ExtractContent.default(obj, options, null, field).extraction(); //To*********SetFileDataToReqObj new _setDatatoReqobj.default(obj).populate(); let writeBool = false; let parseBool = false; let checkCompletion = (writeComplete, parsecomplete) => { if (writeComplete && parsecomplete) next(); }; _EventHandlers.default.on("parseEnd", message => { parseBool = true; checkCompletion(writeBool, parseBool); }); _EventHandlers.default.on("writeEnd", message => { writeBool = true; checkCompletion(writeBool, parseBool); }); new _WriteFileContent.default(req, obj, options, "single", "memory").writeContent(); if (options.attachFileToReqBody && options.attachFileToReqBody == true) new _setFileNameToBody.default(obj).setFileNames(req); new _SetBodyContentToReq.default(obj).setBody(req); } catch (err) { next(err); } }); req.on("error", () => { next(new _FormFluxError.default("Error in recieving request", 500)); }); }; } }; } bodyParser() { return async function (req, res, next) { var _req$headers$content7; let obj = { "originalReq": "", "modifiedReq": Buffer.from(""), "data": [], "content": [], "metaData": [], "mimeType": [], "fieldNameBody": [], "fileName": [], "modifiedFileName": [], "contentBody": [], "fieldNameFile": [], "filePath": [], "filesize": [], "streams": [] }; let buff = []; let reqType = req.headers["content-type"]; if (reqType && !reqType.includes("multipart/form-data")) throw new _FormFluxError.default("Invalid Request Type.Expected multipart/form-data", 400); let boundary = (_req$headers$content7 = req.headers["content-type"]) == null ? void 0 : _req$headers$content7.split("boundary=")[1]; req.on("data", chunk => { buff.push(chunk); }); req.on("end", () => { try { var _obj$modifiedReq$toSt7; obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer obj.data = (_obj$modifiedReq$toSt7 = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt7.split(`--${boundary}`); // separating the boundary obj.data.pop(); obj.data.shift(); //*****Defaults***** //To*********extract content new _ExtractContent.default(obj, null, null, null).extraction(); //To*********SetFileDataToReqObj let writeBool = false; let parseBool = false; let checkCompletion = (writeComplete, parsecomplete) => { if (writeComplete && parsecomplete) next(); }; _EventHandlers.default.on("parseEnd", message => { parseBool = true; next(); }); new _SetBodyContentToReq.default(obj).setBody(req); } catch (err) { next(err); } }); req.on("error", () => { next(new _FormFluxError.default("Error in recieving request", 500)); }); }; } } var _default = exports.default = Formflux; //# sourceMappingURL=FormFlux.js.map