formflux 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/EventHandlers.d.ts +7 -0
- package/dist/ExtractContent.d.ts +11 -0
- package/dist/FormFlux.Types.d.ts +51 -0
- package/dist/FormFlux.d.ts +16 -0
- package/dist/FormFluxError.d.ts +5 -0
- package/dist/SetBodyContentToReq.d.ts +10 -0
- package/dist/SetFileContentToReqFile.d.ts +11 -0
- package/dist/WriteFileContent.d.ts +17 -0
- package/dist/cjs/EventHandlers.js +16 -0
- package/dist/cjs/EventHandlers.js.map +1 -0
- package/dist/cjs/ExtractContent.js +146 -0
- package/dist/cjs/ExtractContent.js.map +1 -0
- package/dist/cjs/FormFlux.Types.js +2 -0
- package/dist/cjs/FormFlux.Types.js.map +1 -0
- package/dist/cjs/FormFlux.js +480 -0
- package/dist/cjs/FormFlux.js.map +1 -0
- package/dist/cjs/FormFluxError.js +14 -0
- package/dist/cjs/FormFluxError.js.map +1 -0
- package/dist/cjs/SetBodyContentToReq.js +100 -0
- package/dist/cjs/SetBodyContentToReq.js.map +1 -0
- package/dist/cjs/SetFileContentToReqFile.js +64 -0
- package/dist/cjs/SetFileContentToReqFile.js.map +1 -0
- package/dist/cjs/WriteFileContent.js +139 -0
- package/dist/cjs/WriteFileContent.js.map +1 -0
- package/dist/cjs/defaultOptions.js +14 -0
- package/dist/cjs/defaultOptions.js.map +1 -0
- package/dist/cjs/helpers/resBodyMaker.js +33 -0
- package/dist/cjs/helpers/resBodyMaker.js.map +1 -0
- package/dist/cjs/setDatatoReqobj.js +24 -0
- package/dist/cjs/setDatatoReqobj.js.map +1 -0
- package/dist/cjs/setFileNameToBody.js +103 -0
- package/dist/cjs/setFileNameToBody.js.map +1 -0
- package/dist/defaultOptions.d.ts +2 -0
- package/dist/esm/EventHandlers.js +11 -0
- package/dist/esm/EventHandlers.js.map +1 -0
- package/dist/esm/ExtractContent.js +141 -0
- package/dist/esm/ExtractContent.js.map +1 -0
- package/dist/esm/FormFlux.Types.js +2 -0
- package/dist/esm/FormFlux.Types.js.map +1 -0
- package/dist/esm/FormFlux.js +475 -0
- package/dist/esm/FormFlux.js.map +1 -0
- package/dist/esm/FormFluxError.js +10 -0
- package/dist/esm/FormFluxError.js.map +1 -0
- package/dist/esm/SetBodyContentToReq.js +95 -0
- package/dist/esm/SetBodyContentToReq.js.map +1 -0
- package/dist/esm/SetFileContentToReqFile.js +59 -0
- package/dist/esm/SetFileContentToReqFile.js.map +1 -0
- package/dist/esm/WriteFileContent.js +134 -0
- package/dist/esm/WriteFileContent.js.map +1 -0
- package/dist/esm/defaultOptions.js +10 -0
- package/dist/esm/defaultOptions.js.map +1 -0
- package/dist/esm/helpers/resBodyMaker.js +29 -0
- package/dist/esm/helpers/resBodyMaker.js.map +1 -0
- package/dist/esm/setDatatoReqobj.js +20 -0
- package/dist/esm/setDatatoReqobj.js.map +1 -0
- package/dist/esm/setFileNameToBody.js +98 -0
- package/dist/esm/setFileNameToBody.js.map +1 -0
- package/dist/helpers/resBodyMaker.d.ts +1 -0
- package/dist/package.json +61 -0
- package/dist/setDatatoReqobj.d.ts +7 -0
- package/dist/setFileNameToBody.d.ts +10 -0
- package/package.json +13 -3
- package/script/babel-package.js +3 -0
- package/script/babel-preset.js +21 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormFlux.js","names":["ExtractFileContent","writeFileContent","setContentToBody","setFileNameToBody","populateReqObj","EventHandlers","FormfluxError","Formflux","diskStorage","options","any","req","res","next","_req$headers$content","obj","Buffer","from","buff","reqType","headers","includes","boundary","split","on","chunk","push","_obj$modifiedReq$toSt","modifiedReq","concat","data","toString","pop","shift","extraction","populate","writeBool","parseBool","checkCompletion","writeComplete","parsecomplete","message","writeContent","attachFileToReqBody","setFileNames","setBody","err","fields","optionFields","_req$headers$content2","_obj$modifiedReq$toSt2","single","field","_req$headers$content3","_obj$modifiedReq$toSt3","memoryStorage","_req$headers$content4","_obj$modifiedReq$toSt4","_req$headers$content5","_obj$modifiedReq$toSt5","_req$headers$content6","_obj$modifiedReq$toSt6","bodyParser","_req$headers$content7","_obj$modifiedReq$toSt7"],"sources":["../../src/FormFlux.ts"],"sourcesContent":["import { NextFunction, Request, Response } from \"express\";\nimport { options, reqObj, optionFields, optionSingle } from \"./FormFlux.Types\";\nimport ExtractFileContent from \"./ExtractContent\";\nimport writeFileContent from \"./WriteFileContent\";\nimport setContentToBody from \"./SetBodyContentToReq\";\nimport setFileNameToBody from \"./setFileNameToBody\";\nimport populateReqObj from \"./setDatatoReqobj\";\nimport EventHandlers from \"./EventHandlers\";\nimport FormfluxError from \"./FormFluxError\";\n\nclass Formflux {\n\n static diskStorage(options: options) {\n return {\n any() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"any\", \"disk\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n\n }\n },\n fields(optionFields: optionFields) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, optionFields, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"fields\", \"disk\").writeContent();\n // new setFileContentToReq(obj).setFileNames(req);\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n \n } catch (err) {\n next(err)\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n\n single(field: string) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, field).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"single\", \"disk\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n }\n }\n\n static memoryStorage(options: optionSingle) {\n return {\n any() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"any\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n fields(optionFields: optionFields) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, optionFields, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"fields\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err)\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n single(field: string) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, field).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n new writeFileContent(req, obj, options, \"single\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n }\n }\n\n bodyParser(){\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, null, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n next();\n })\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n }\n \n}\n\nexport default Formflux;"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
class FormfluxError extends Error {
|
|
2
|
+
constructor(message, statusCode = 500) {
|
|
3
|
+
super(message);
|
|
4
|
+
this.statusCode = void 0;
|
|
5
|
+
this.name = "FormfluxError";
|
|
6
|
+
this.statusCode = statusCode;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export default FormfluxError;
|
|
10
|
+
//# sourceMappingURL=FormFluxError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormFluxError.js","names":["FormfluxError","Error","constructor","message","statusCode","name"],"sources":["../../src/FormFluxError.ts"],"sourcesContent":["class FormfluxError extends Error {\n private statusCode: number;\n constructor(message: string,statusCode: number=500) {\n super(message);\n this.name = \"FormfluxError\";\n this.statusCode=statusCode;\n }\n}\n\n\nexport default FormfluxError;\n\n\n\n"],"mappings":"AAAA,MAAMA,aAAa,SAASC,KAAK,CAAC;EAE9BC,WAAWA,CAACC,OAAe,EAACC,UAAkB,GAAC,GAAG,EAAE;IAChD,KAAK,CAACD,OAAO,CAAC;IAAC,KAFXC,UAAU;IAGd,IAAI,CAACC,IAAI,GAAG,eAAe;IAC3B,IAAI,CAACD,UAAU,GAACA,UAAU;EAC9B;AACJ;AAGA,eAAeJ,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import EventHandlers from "./EventHandlers";
|
|
2
|
+
import createNewBody from "./helpers/resBodyMaker";
|
|
3
|
+
import FormfluxError from "./FormFluxError";
|
|
4
|
+
class setContentToBody {
|
|
5
|
+
constructor(obj) {
|
|
6
|
+
this.obj = void 0;
|
|
7
|
+
this.obj = obj;
|
|
8
|
+
}
|
|
9
|
+
setBody(req) {
|
|
10
|
+
try {
|
|
11
|
+
req.body = req.body ? req.body : {};
|
|
12
|
+
if (this.obj.contentBody.length > 0) {
|
|
13
|
+
for (let i = 0; i < this.obj.contentBody.length; i++) {
|
|
14
|
+
if (/\[.*\]/.test(this.obj.fieldNameBody[i])) {
|
|
15
|
+
this.nestedData(req, this.obj.fieldNameBody[i], this.obj.contentBody[i]);
|
|
16
|
+
} else req.body[`${this.obj.fieldNameBody[i]}`] = this.obj.contentBody[i];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
EventHandlers.emitMessage("parseEnd", "parse commplete");
|
|
20
|
+
} catch (err) {
|
|
21
|
+
throw new FormfluxError("Error in parsing form data.Invalid Format!", 400);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
nestedData(req, fieldName, data) {
|
|
25
|
+
let outer = fieldName.substring(0, fieldName.indexOf("["));
|
|
26
|
+
let inners = fieldName.substring(fieldName.indexOf("["));
|
|
27
|
+
let i = 0;
|
|
28
|
+
let current;
|
|
29
|
+
let prev;
|
|
30
|
+
let temp = inners.match(/\[([^\]]+)\]/g).map(s => s.slice(1, -1)); // [a,b,c] => [a,b,c]
|
|
31
|
+
if (!req.body[`${outer}`]) {
|
|
32
|
+
for (let _i = temp.length - 1; _i >= 0; _i--) {
|
|
33
|
+
if (!isNaN(temp[_i])) {
|
|
34
|
+
if (!prev) {
|
|
35
|
+
current = [data];
|
|
36
|
+
prev = current;
|
|
37
|
+
} else {
|
|
38
|
+
current = [prev];
|
|
39
|
+
prev = current;
|
|
40
|
+
}
|
|
41
|
+
} else {
|
|
42
|
+
if (!prev) {
|
|
43
|
+
current = {
|
|
44
|
+
[`${temp[_i]}`]: data
|
|
45
|
+
};
|
|
46
|
+
prev = current;
|
|
47
|
+
} else {
|
|
48
|
+
current = {
|
|
49
|
+
[`${temp[_i]}`]: prev
|
|
50
|
+
};
|
|
51
|
+
prev = current;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
req.body[`${outer}`] = current;
|
|
56
|
+
} else {
|
|
57
|
+
temp.unshift(outer);
|
|
58
|
+
this.getNestedField(req, req.body, temp, temp[temp.length - 1], data, 0, req.body);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// mapping.....
|
|
63
|
+
getNestedField(req, obj, posArr, keySearch, data, i, prevObj) {
|
|
64
|
+
if (i == posArr.length - 1) {
|
|
65
|
+
// reached last position set the value
|
|
66
|
+
if (Array.isArray(obj)) {
|
|
67
|
+
if (!isNaN(posArr[i])) {
|
|
68
|
+
// if the current position is a number then it is an array
|
|
69
|
+
obj[posArr[i]] ? obj[posArr[i]] = data : obj.push(data);
|
|
70
|
+
return;
|
|
71
|
+
} else {
|
|
72
|
+
obj[posArr[i]] = data; // needs some checking
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
} else {
|
|
76
|
+
// it is an objct
|
|
77
|
+
obj[posArr[i]] = data;
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (!obj[posArr[i]]) {
|
|
82
|
+
if (!isNaN(posArr[i])) {
|
|
83
|
+
obj[posArr[i]] = createNewBody(posArr, i + 1, data); // create the rest
|
|
84
|
+
return;
|
|
85
|
+
} else {
|
|
86
|
+
obj[posArr[i]] = createNewBody(posArr, i + 1, data);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
prevObj = obj[posArr[i]];
|
|
91
|
+
this.getNestedField(req, obj[posArr[i]], posArr, keySearch, data, i + 1, prevObj);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export default setContentToBody;
|
|
95
|
+
//# sourceMappingURL=SetBodyContentToReq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetBodyContentToReq.js","names":["EventHandlers","createNewBody","FormfluxError","setContentToBody","constructor","obj","setBody","req","body","contentBody","length","i","test","fieldNameBody","nestedData","emitMessage","err","fieldName","data","outer","substring","indexOf","inners","current","prev","temp","match","map","s","slice","isNaN","unshift","getNestedField","posArr","keySearch","prevObj","Array","isArray","push"],"sources":["../../src/SetBodyContentToReq.ts"],"sourcesContent":["import EventHandlers from \"./EventHandlers\";\nimport { reqObj } from \"./FormFlux.Types\";\nimport { Request } from \"express\";\nimport createNewBody from \"./helpers/resBodyMaker\";\nimport FormfluxError from \"./FormFluxError\";\n\nclass setContentToBody {\n private obj: reqObj;\n constructor(obj: reqObj) {\n this.obj = obj;\n }\n\n setBody(req: Request): void {\n try {\n req.body = req.body ? req.body : {};\n if (this.obj.contentBody.length > 0) {\n for (let i = 0; i < this.obj.contentBody.length; i++) {\n if (/\\[.*\\]/.test(this.obj.fieldNameBody[i])) {\n this.nestedData(req, this.obj.fieldNameBody[i], this.obj.contentBody[i]);\n } else\n req.body[`${this.obj.fieldNameBody[i]}`] = this.obj.contentBody[i];\n }\n }\n EventHandlers.emitMessage(\"parseEnd\", \"parse commplete\");\n } catch (err) {\n throw new FormfluxError(\"Error in parsing form data.Invalid Format!\", 400);\n }\n }\n\n nestedData(req: Request, fieldName: string, data: any) {\n let outer = fieldName.substring(0, fieldName.indexOf(\"[\"));\n let inners = fieldName.substring(fieldName.indexOf(\"[\"));\n let i = 0;\n let current: any;\n let prev: any;\n let temp = inners.match(/\\[([^\\]]+)\\]/g).map(s => s.slice(1, -1)); // [a,b,c] => [a,b,c]\n if (!req.body[`${outer}`]) {\n for (let i = temp.length - 1; i >= 0; i--) {\n if (!isNaN(temp[i] as any)) {\n if (!prev) {\n current = [data]\n prev = current;\n }\n else {\n current = [prev]\n prev = current;\n }\n }\n else {\n if (!prev) {\n current = { [`${temp[i]}`]: data };\n prev = current;\n }\n else {\n current = { [`${temp[i]}`]: prev }\n prev = current;\n }\n }\n }\n req.body[`${outer}`] = current;\n }\n else {\n temp.unshift(outer);\n this.getNestedField(req, req.body, temp, temp[temp.length - 1], data, 0, req.body);\n }\n }\n\n // mapping.....\n getNestedField(req: Request, obj: object, posArr: Array<any>, keySearch: any, data: any, i: number, prevObj: object) {\n if (i == posArr.length - 1) { // reached last position set the value\n if (Array.isArray(obj)) {\n if (!isNaN(posArr[i])) { // if the current position is a number then it is an array\n obj[posArr[i]] ? obj[posArr[i]] = data : obj.push(data);\n return;\n } else {\n obj[posArr[i]] = data // needs some checking\n return;\n }\n } else { // it is an objct\n obj[posArr[i]] = data;\n return;\n }\n }\n\n if (!obj[posArr[i]]) {\n if (!isNaN(posArr[i])) {\n obj[posArr[i]] = createNewBody(posArr, i + 1, data); // create the rest\n return;\n }\n else {\n obj[posArr[i]] = createNewBody(posArr, i + 1, data);\n return;\n }\n }\n prevObj = obj[posArr[i]];\n this.getNestedField(req, obj[posArr[i]], posArr, keySearch, data, i + 1, prevObj);\n }\n}\n\nexport default setContentToBody;"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import FormfluxError from "./FormFluxError";
|
|
2
|
+
class setFileContentToReq {
|
|
3
|
+
constructor(req, obj, forReason, storage) {
|
|
4
|
+
this.obj = void 0;
|
|
5
|
+
this.req = void 0;
|
|
6
|
+
this.for = void 0;
|
|
7
|
+
this.storage = void 0;
|
|
8
|
+
this.req = req;
|
|
9
|
+
this.obj = obj;
|
|
10
|
+
this.for = forReason;
|
|
11
|
+
this.storage = storage;
|
|
12
|
+
}
|
|
13
|
+
setFileNames(fileObj, field) {
|
|
14
|
+
switch (this.storage) {
|
|
15
|
+
case "disk":
|
|
16
|
+
{
|
|
17
|
+
if (this.for == "any") {
|
|
18
|
+
delete fileObj["buffer"];
|
|
19
|
+
if (!Array.isArray(this.req["files"])) this.req["files"] = [];
|
|
20
|
+
fileObj["filepath"] = fileObj["filepath"];
|
|
21
|
+
this.req["files"].push(fileObj);
|
|
22
|
+
} else if (this.for == "fields") {
|
|
23
|
+
delete fileObj["buffer"];
|
|
24
|
+
if (!this.req["files"]) this.req["files"] = {};
|
|
25
|
+
if (this.req["files"][`${field}`]) this.req["files"][`${field}`].push(fileObj);else {
|
|
26
|
+
this.req["files"][`${field}`] = [];
|
|
27
|
+
this.req["files"][`${field}`].push(fileObj);
|
|
28
|
+
}
|
|
29
|
+
} else if (this.for == "single") {
|
|
30
|
+
delete fileObj["buffer"];
|
|
31
|
+
this.req["file"] = fileObj;
|
|
32
|
+
}
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
case "memory":
|
|
36
|
+
{
|
|
37
|
+
delete fileObj["filepath"];
|
|
38
|
+
if (this.for == "any") {
|
|
39
|
+
if (!Array.isArray(this.req["files"])) this.req["files"] = [];
|
|
40
|
+
fileObj["buffer"] = fileObj["buffer"];
|
|
41
|
+
this.req["files"].push(fileObj);
|
|
42
|
+
} else if (this.for == "fields") {
|
|
43
|
+
if (!this.req["files"]) this.req["files"] = {};
|
|
44
|
+
if (this.req["files"][`${field}`]) this.req["files"][`${field}`].push(fileObj);else {
|
|
45
|
+
this.req["files"][`${field}`] = [];
|
|
46
|
+
this.req["files"][`${field}`].push(fileObj);
|
|
47
|
+
}
|
|
48
|
+
} else if (this.for == "single") {
|
|
49
|
+
this.req["file"] = fileObj;
|
|
50
|
+
}
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
default:
|
|
54
|
+
throw new FormfluxError("Invalid storage option", 400);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export default setFileContentToReq;
|
|
59
|
+
//# sourceMappingURL=SetFileContentToReqFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetFileContentToReqFile.js","names":["FormfluxError","setFileContentToReq","constructor","req","obj","forReason","storage","for","setFileNames","fileObj","field","Array","isArray","push"],"sources":["../../src/SetFileContentToReqFile.ts"],"sourcesContent":["import { Request } from \"express\";\nimport { reqObj } from \"./FormFlux.Types\";\nimport FormfluxError from \"./FormFluxError\";\n\nclass setFileContentToReq {\n private obj: reqObj;\n private req: Request;\n private for: \"any\" | \"fields\" | \"single\";\n private storage: \"memory\" | \"disk\";\n constructor(req: Request, obj: reqObj, forReason: \"any\" | \"fields\" | \"single\", storage: \"memory\" | \"disk\") {\n this.req = req;\n this.obj = obj;\n this.for = forReason;\n this.storage = storage;\n }\n\n setFileNames(fileObj: any, field: string | null): void {\n switch (this.storage) {\n case \"disk\": {\n if (this.for == \"any\") {\n delete fileObj[\"buffer\"];\n if (!Array.isArray(this.req[\"files\"])) this.req[\"files\"] = [];\n fileObj[\"filepath\"] = fileObj[\"filepath\"];\n this.req[\"files\"].push(fileObj);\n }\n else if (this.for == \"fields\") {\n delete fileObj[\"buffer\"];\n if (!this.req[\"files\"]) this.req[\"files\"] = {};\n if (this.req[\"files\"][`${field}`])\n this.req[\"files\"][`${field}`].push(fileObj);\n else {\n this.req[\"files\"][`${field}`] = [];\n this.req[\"files\"][`${field}`].push(fileObj);\n }\n }\n else if (this.for == \"single\") {\n delete fileObj[\"buffer\"];\n this.req[\"file\"] = fileObj;\n }\n break;\n }\n\n case \"memory\": {\n delete fileObj[\"filepath\"];\n if (this.for == \"any\") {\n if (!Array.isArray(this.req[\"files\"])) this.req[\"files\"] = [];\n fileObj[\"buffer\"] = fileObj[\"buffer\"];\n this.req[\"files\"].push(fileObj);\n }\n else if (this.for == \"fields\") {\n if (!this.req[\"files\"]) this.req[\"files\"] = {};\n if (this.req[\"files\"][`${field}`])\n this.req[\"files\"][`${field}`].push(fileObj);\n else {\n this.req[\"files\"][`${field}`] = [];\n this.req[\"files\"][`${field}`].push(fileObj);\n }\n }\n else if (this.for == \"single\") {\n this.req[\"file\"] = fileObj;\n }\n break;\n }\n\n default: throw new FormfluxError(\"Invalid storage option\", 400);\n }\n }\n}\n\nexport default setFileContentToReq;"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { createWriteStream, existsSync, unlinkSync } from "fs";
|
|
2
|
+
import FormfluxError from "./FormFluxError";
|
|
3
|
+
import setFileContentToReq from "./SetFileContentToReqFile";
|
|
4
|
+
import EventHandlers from "./EventHandlers";
|
|
5
|
+
import path from "path";
|
|
6
|
+
class writeFileContent {
|
|
7
|
+
constructor(req, obj, options, forReason, storage) {
|
|
8
|
+
this.obj = void 0;
|
|
9
|
+
this.options = void 0;
|
|
10
|
+
this.req = void 0;
|
|
11
|
+
this.for = void 0;
|
|
12
|
+
this.storage = void 0;
|
|
13
|
+
this.obj = obj;
|
|
14
|
+
this.options = options;
|
|
15
|
+
this.req = req;
|
|
16
|
+
this.for = forReason;
|
|
17
|
+
this.storage = storage;
|
|
18
|
+
}
|
|
19
|
+
writeContent() {
|
|
20
|
+
let flag = 0;
|
|
21
|
+
if (this.obj.content.length > 0) {
|
|
22
|
+
for (let i = 0; i < this.obj.metaData.length; i++) {
|
|
23
|
+
var _this$obj$metaData$i, _this$obj$content$i, _this$obj$fileName$i, _this$obj$fieldNameFi;
|
|
24
|
+
if (((_this$obj$metaData$i = this.obj.metaData[i]) == null ? void 0 : _this$obj$metaData$i.length) != 0 && ((_this$obj$content$i = this.obj.content[i]) == null ? void 0 : _this$obj$content$i.length) != 0, ((_this$obj$fileName$i = this.obj.fileName[i]) == null ? void 0 : _this$obj$fileName$i.length) != 0 && ((_this$obj$fieldNameFi = this.obj.fieldNameFile[i]) == null ? void 0 : _this$obj$fieldNameFi.length) != 0) {
|
|
25
|
+
this.singleFile(i, this.obj.metaData[i], this.obj.content[i], this.obj.filesize[i], this.obj.fieldNameFile[i]);
|
|
26
|
+
flag++;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (flag == 0 || this.storage == "memory") {
|
|
31
|
+
EventHandlers.emitMessage("writeEnd", "write finish");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
singleFile(count, metaData, content, filesize, fieldname) {
|
|
35
|
+
let header = metaData.split(`filename="`)[1];
|
|
36
|
+
let fileName = header.substring(0, header.indexOf(`"`));
|
|
37
|
+
let access = true;
|
|
38
|
+
if (this.options.fileFilter) this.options.fileFilter(this.req, {
|
|
39
|
+
originalname: fileName,
|
|
40
|
+
mimetype: metaData.split("Content-Type: ")[1],
|
|
41
|
+
filesize,
|
|
42
|
+
fieldname
|
|
43
|
+
}, (error, bool) => {
|
|
44
|
+
access = this.callBackFilter(error, bool);
|
|
45
|
+
});
|
|
46
|
+
if (!access) throw new FormfluxError("Invalid file", 400);
|
|
47
|
+
this.options.filename(this.req, {
|
|
48
|
+
originalname: fileName,
|
|
49
|
+
mimetype: metaData.split("Content-Type: ")[1],
|
|
50
|
+
filesize,
|
|
51
|
+
fieldname
|
|
52
|
+
}, (error, fileName) => {
|
|
53
|
+
this.callBackFilename(error, fileName);
|
|
54
|
+
});
|
|
55
|
+
this.obj.fileName.push(fileName);
|
|
56
|
+
if (this.storage == "disk") {
|
|
57
|
+
this.options["destination"](this.req, {
|
|
58
|
+
originalname: fileName,
|
|
59
|
+
mimetype: metaData.split("Content-Type: ")[1],
|
|
60
|
+
filesize
|
|
61
|
+
}, (error, filepath) => {
|
|
62
|
+
this.callBackfilepath(error, filepath);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (this.for == "any") {
|
|
66
|
+
new setFileContentToReq(this.req, this.obj, "any", this.storage).setFileNames({
|
|
67
|
+
originalname: fileName,
|
|
68
|
+
mimetype: metaData.split("Content-Type: ")[1],
|
|
69
|
+
filepath: this.obj.filePath[count],
|
|
70
|
+
filesize: Buffer.from(content).length,
|
|
71
|
+
filename: `${this.obj.modifiedFileName[count]}`,
|
|
72
|
+
fieldname,
|
|
73
|
+
buffer: content
|
|
74
|
+
}, null);
|
|
75
|
+
} else if (this.for == "fields") {
|
|
76
|
+
new setFileContentToReq(this.req, this.obj, "fields", this.storage).setFileNames({
|
|
77
|
+
originalname: fileName,
|
|
78
|
+
mimetype: metaData.split("Content-Type: ")[1],
|
|
79
|
+
filepath: this.obj.filePath[count],
|
|
80
|
+
filesize: Buffer.from(content).length,
|
|
81
|
+
filename: `${this.obj.modifiedFileName[count]}`,
|
|
82
|
+
fieldname,
|
|
83
|
+
buffer: content
|
|
84
|
+
}, fieldname);
|
|
85
|
+
} else if (this.for == "single") {
|
|
86
|
+
new setFileContentToReq(this.req, this.obj, "single", this.storage).setFileNames({
|
|
87
|
+
originalname: fileName,
|
|
88
|
+
mimetype: metaData.split("Content-Type: ")[1],
|
|
89
|
+
filepath: this.obj.filePath[count],
|
|
90
|
+
filesize: Buffer.from(content).length,
|
|
91
|
+
filename: `${this.obj.modifiedFileName[count]}`,
|
|
92
|
+
fieldname,
|
|
93
|
+
buffer: content
|
|
94
|
+
}, null);
|
|
95
|
+
}
|
|
96
|
+
if (!this.obj.modifiedFileName[count]) throw new FormfluxError("Filename not found", 404);
|
|
97
|
+
if (this.storage == "disk" && !this.obj.filePath[count]) throw new FormfluxError("Destination path not found", 404);
|
|
98
|
+
if (this.storage == "disk") {
|
|
99
|
+
let writeFile = createWriteStream(this.obj.filePath[count]);
|
|
100
|
+
this.obj.streams.push(writeFile);
|
|
101
|
+
writeFile.write(content);
|
|
102
|
+
writeFile.end();
|
|
103
|
+
writeFile.on("error", err => {
|
|
104
|
+
for (let i = 0; i < this.obj.streams.length; i++) {
|
|
105
|
+
this.obj.streams[i].destroy(err);
|
|
106
|
+
if (existsSync(this.obj.filePath[i])) unlinkSync(this.obj.filePath[i]);
|
|
107
|
+
}
|
|
108
|
+
throw new Error(err.message);
|
|
109
|
+
});
|
|
110
|
+
writeFile.on("close", () => {
|
|
111
|
+
EventHandlers.emitMessage("writeEnd", "write finish");
|
|
112
|
+
});
|
|
113
|
+
EventHandlers.on("parseError", () => {
|
|
114
|
+
this.obj.streams[0].destroy(new FormfluxError("Error in parsing form data.Invalid Format!", 400));
|
|
115
|
+
throw new FormfluxError("Error in parsing form data.Invalid Format!", 400);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
callBackFilename(error, fileName) {
|
|
120
|
+
if (error) throw error;
|
|
121
|
+
this.obj.modifiedFileName.push(fileName);
|
|
122
|
+
}
|
|
123
|
+
callBackfilepath(error, filepath) {
|
|
124
|
+
if (error) throw error;
|
|
125
|
+
let len = this.obj.modifiedFileName.length;
|
|
126
|
+
this.obj.filePath.push(path.resolve(filepath, `${this.obj.modifiedFileName[len - 1]}`));
|
|
127
|
+
}
|
|
128
|
+
callBackFilter(error, bool) {
|
|
129
|
+
if (error) throw error;
|
|
130
|
+
return bool;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
export default writeFileContent;
|
|
134
|
+
//# sourceMappingURL=WriteFileContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteFileContent.js","names":["createWriteStream","existsSync","unlinkSync","FormfluxError","setFileContentToReq","EventHandlers","path","writeFileContent","constructor","req","obj","options","forReason","storage","for","writeContent","flag","content","length","i","metaData","_this$obj$metaData$i","_this$obj$content$i","_this$obj$fileName$i","_this$obj$fieldNameFi","fileName","fieldNameFile","singleFile","filesize","emitMessage","count","fieldname","header","split","substring","indexOf","access","fileFilter","originalname","mimetype","error","bool","callBackFilter","filename","callBackFilename","push","filepath","callBackfilepath","setFileNames","filePath","Buffer","from","modifiedFileName","buffer","writeFile","streams","write","end","on","err","destroy","Error","message","len","resolve"],"sources":["../../src/WriteFileContent.ts"],"sourcesContent":["import { Request } from \"express\";\nimport { options, optionSingle, reqObj } from \"./FormFlux.Types\";\nimport { createWriteStream, existsSync, unlinkSync } from \"fs\";\nimport FormfluxError from \"./FormFluxError\";\nimport setFileContentToReq from \"./SetFileContentToReqFile\";\nimport EventHandlers from \"./EventHandlers\";\nimport path from \"path\";\nclass writeFileContent {\n\n private obj: reqObj\n private options: options | optionSingle;\n private req: Request;\n private for: \"any\" | \"fields\" | \"single\";\n private storage: \"memory\" | \"disk\";\n constructor(req: Request, obj: reqObj, options: options | optionSingle, forReason: \"any\" | \"fields\" | \"single\", storage: \"memory\" | \"disk\") {\n this.obj = obj;\n this.options = options;\n this.req = req;\n this.for = forReason;\n this.storage = storage;\n\n }\n\n writeContent(): void {\n let flag = 0;\n if (this.obj.content.length > 0) {\n for (let i = 0; i < this.obj.metaData.length; i++)\n if (this.obj.metaData[i]?.length != 0 && this.obj.content[i]?.length != 0, this.obj.fileName[i]?.length != 0 && this.obj.fieldNameFile[i]?.length != 0) {\n this.singleFile(i, this.obj.metaData[i], this.obj.content[i], this.obj.filesize[i], this.obj.fieldNameFile[i]);\n flag++;\n }\n }\n if (flag == 0 || this.storage == \"memory\") {\n EventHandlers.emitMessage(\"writeEnd\", \"write finish\");\n }\n\n }\n\n singleFile(count: number, metaData: string, content: Buffer, filesize: number, fieldname: string): void {\n\n let header = metaData.split(`filename=\"`)[1];\n let fileName = header.substring(0, header.indexOf(`\"`));\n let access: boolean = true;\n\n if (this.options.fileFilter)\n this.options.fileFilter(this.req, { originalname: fileName, mimetype: metaData.split(\"Content-Type: \")[1], filesize, fieldname }, (error: FormfluxError | null, bool: boolean) => {\n access = this.callBackFilter(error, bool);\n })\n\n if (!access) throw new FormfluxError(\"Invalid file\", 400);\n\n this.options.filename(this.req, { originalname: fileName, mimetype: metaData.split(\"Content-Type: \")[1], filesize, fieldname }, (error: FormfluxError | null, fileName: string) => {\n this.callBackFilename(error, fileName);\n })\n\n this.obj.fileName.push(fileName);\n\n if (this.storage == \"disk\") {\n this.options[\"destination\"](\n this.req,\n { originalname: fileName, mimetype: metaData.split(\"Content-Type: \")[1], filesize },\n (error: FormfluxError | null, filepath: string) => {\n this.callBackfilepath(error, filepath);\n }\n );\n }\n\n if (this.for == \"any\") {\n new setFileContentToReq(this.req, this.obj, \"any\", this.storage).setFileNames(\n {\n originalname: fileName, mimetype: metaData.split(\"Content-Type: \")[1],\n filepath: this.obj.filePath[count],\n filesize: Buffer.from(content).length,\n filename: `${this.obj.modifiedFileName[count]}`,\n fieldname,\n buffer: content\n },\n null\n );\n } else if (this.for == \"fields\") {\n new setFileContentToReq(this.req, this.obj, \"fields\", this.storage).setFileNames(\n {\n originalname: fileName, mimetype: metaData.split(\"Content-Type: \")[1],\n filepath: this.obj.filePath[count],\n filesize: Buffer.from(content).length,\n filename: `${this.obj.modifiedFileName[count]}`,\n fieldname,\n buffer: content\n },\n fieldname\n );\n } else if (this.for == \"single\") {\n new setFileContentToReq(this.req, this.obj, \"single\", this.storage).setFileNames(\n {\n originalname: fileName, mimetype: metaData.split(\"Content-Type: \")[1],\n filepath: this.obj.filePath[count],\n filesize: Buffer.from(content).length,\n filename: `${this.obj.modifiedFileName[count]}`,\n fieldname,\n buffer: content\n },\n null\n );\n }\n if (!this.obj.modifiedFileName[count]) throw new FormfluxError(\"Filename not found\", 404);\n if (this.storage == \"disk\" && !this.obj.filePath[count]) throw new FormfluxError(\"Destination path not found\", 404);\n\n if (this.storage == \"disk\") {\n let writeFile = createWriteStream(this.obj.filePath[count]);\n this.obj.streams.push(writeFile);\n writeFile.write(content);\n writeFile.end();\n writeFile.on(\"error\", (err) => {\n for (let i = 0; i < this.obj.streams.length; i++) {\n this.obj.streams[i].destroy(err);\n if (existsSync(this.obj.filePath[i])) unlinkSync(this.obj.filePath[i]);\n }\n throw new Error(err.message);\n });\n writeFile.on(\"close\", () => {\n EventHandlers.emitMessage(\"writeEnd\", \"write finish\");\n });\n EventHandlers.on(\"parseError\", () => {\n this.obj.streams[0].destroy(\n new FormfluxError(\"Error in parsing form data.Invalid Format!\", 400)\n );\n throw new FormfluxError(\"Error in parsing form data.Invalid Format!\", 400);\n });\n }\n }\n\n callBackFilename(error: FormfluxError | null, fileName: string): void {\n if (error) throw error;\n this.obj.modifiedFileName.push(fileName);\n }\n\n callBackfilepath(error: FormfluxError | null, filepath: string): void {\n if (error) throw error;\n let len = this.obj.modifiedFileName.length;\n this.obj.filePath.push(path.resolve(filepath, `${this.obj.modifiedFileName[len - 1]}`));\n }\n\n callBackFilter(error: FormfluxError | null, bool: boolean): boolean {\n if (error) throw error;\n return bool;\n }\n}\n\nexport default writeFileContent;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultOptions.js","names":["defaultOptions","attachFileToReqBody","filename","req","file","cb","originalname","destination"],"sources":["../../src/defaultOptions.ts"],"sourcesContent":["import { options } from \"./FormFlux.Types\";\n\nexport let defaultOptions: options = {\n attachFileToReqBody: false,\n filename: (req, file, cb) => {\n cb(null, file.originalname);\n },\n destination: (req, file, cb) => {\n cb(null, \"\");\n }\n}"],"mappings":"AAEA,OAAO,IAAIA,cAAuB,GAAG;EACjCC,mBAAmB,EAAE,KAAK;EAC1BC,QAAQ,EAAEA,CAACC,GAAG,EAAEC,IAAI,EAAEC,EAAE,KAAK;IACzBA,EAAE,CAAC,IAAI,EAAED,IAAI,CAACE,YAAY,CAAC;EAC/B,CAAC;EACDC,WAAW,EAAEA,CAACJ,GAAG,EAAEC,IAAI,EAAEC,EAAE,KAAK;IAC5BA,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;EAChB;AACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export default function createNewBody(posArr, j, data) {
|
|
2
|
+
let current;
|
|
3
|
+
let prev;
|
|
4
|
+
for (let i = posArr.length - 1; i >= j; i--) {
|
|
5
|
+
if (!isNaN(posArr[i])) {
|
|
6
|
+
if (!prev) {
|
|
7
|
+
current = [data];
|
|
8
|
+
prev = current;
|
|
9
|
+
} else {
|
|
10
|
+
current = [prev];
|
|
11
|
+
prev = current;
|
|
12
|
+
}
|
|
13
|
+
} else {
|
|
14
|
+
if (!prev) {
|
|
15
|
+
current = {
|
|
16
|
+
[`${posArr[i]}`]: data
|
|
17
|
+
};
|
|
18
|
+
prev = current;
|
|
19
|
+
} else {
|
|
20
|
+
current = {
|
|
21
|
+
[`${posArr[i]}`]: prev
|
|
22
|
+
};
|
|
23
|
+
prev = current;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return current;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=resBodyMaker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resBodyMaker.js","names":["createNewBody","posArr","j","data","current","prev","i","length","isNaN"],"sources":["../../../src/helpers/resBodyMaker.ts"],"sourcesContent":["\nexport default function createNewBody(posArr:Array<string>, j:number, data:any): object {\n let current: any;\n let prev: any;\n\n for (let i = posArr.length - 1; i >= j; i--) {\n if (!isNaN(posArr[i] as any))\n if (!prev) {\n current = [data]\n prev = current;\n }\n else {\n current = [prev]\n prev = current;\n }\n else {\n if (!prev) {\n current = { [`${posArr[i]}`]: data };\n prev = current;\n }\n else {\n current = { [`${posArr[i]}`]: prev }\n prev = current;\n }\n }\n }\n return current;\n }"],"mappings":"AACA,eAAe,SAASA,aAAaA,CAACC,MAAoB,EAAEC,CAAQ,EAAEC,IAAQ,EAAU;EAChF,IAAIC,OAAY;EAChB,IAAIC,IAAS;EAEb,KAAK,IAAIC,CAAC,GAAGL,MAAM,CAACM,MAAM,GAAG,CAAC,EAAED,CAAC,IAAIJ,CAAC,EAAEI,CAAC,EAAE,EAAE;IACzC,IAAI,CAACE,KAAK,CAACP,MAAM,CAACK,CAAC,CAAQ,CAAC;MACxB,IAAI,CAACD,IAAI,EAAE;QACPD,OAAO,GAAG,CAACD,IAAI,CAAC;QAChBE,IAAI,GAAGD,OAAO;MAClB,CAAC,MACI;QACDA,OAAO,GAAG,CAACC,IAAI,CAAC;QAChBA,IAAI,GAAGD,OAAO;MAClB;IAAC,OACA;MACD,IAAI,CAACC,IAAI,EAAE;QACPD,OAAO,GAAG;UAAE,CAAC,GAAGH,MAAM,CAACK,CAAC,CAAC,EAAE,GAAGH;QAAK,CAAC;QACpCE,IAAI,GAAGD,OAAO;MAClB,CAAC,MACI;QACDA,OAAO,GAAG;UAAE,CAAC,GAAGH,MAAM,CAACK,CAAC,CAAC,EAAE,GAAGD;QAAK,CAAC;QACpCA,IAAI,GAAGD,OAAO;MAClB;IACJ;EACJ;EACA,OAAOA,OAAO;AAClB","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
class populateReqObj {
|
|
2
|
+
constructor(obj) {
|
|
3
|
+
this.obj = void 0;
|
|
4
|
+
this.obj = obj;
|
|
5
|
+
}
|
|
6
|
+
populate() {
|
|
7
|
+
for (let i = 0; i < this.obj.metaData.length; i++) {
|
|
8
|
+
{
|
|
9
|
+
if (this.obj.metaData[i].includes(`filename=`)) {
|
|
10
|
+
let header = this.obj.metaData[i].split(`filename="`)[1];
|
|
11
|
+
// let fileName = header.substring(0, header.indexOf(`"`));
|
|
12
|
+
this.obj.mimeType.push(this.obj.metaData[i].split("Content-Type: ")[1]);
|
|
13
|
+
this.obj.filesize.push(Buffer.from(this.obj.content[i]).length);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export default populateReqObj;
|
|
20
|
+
//# sourceMappingURL=setDatatoReqobj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setDatatoReqobj.js","names":["populateReqObj","constructor","obj","populate","i","metaData","length","includes","header","split","mimeType","push","filesize","Buffer","from","content"],"sources":["../../src/setDatatoReqobj.ts"],"sourcesContent":["import { reqObj } from \"./FormFlux.Types\";\nclass populateReqObj {\n obj: reqObj;\n constructor(obj: reqObj) {\n this.obj = obj;\n }\n\n populate(): void {\n for (let i = 0; i < this.obj.metaData.length; i++) {\n {\n if (this.obj.metaData[i].includes(`filename=`)) {\n let header = this.obj.metaData[i].split(`filename=\"`)[1];\n // let fileName = header.substring(0, header.indexOf(`\"`));\n this.obj.mimeType.push(this.obj.metaData[i].split(\"Content-Type: \")[1]);\n this.obj.filesize.push(Buffer.from(this.obj.content[i]).length);\n }\n }\n }\n }\n}\n\nexport default populateReqObj;"],"mappings":"AACA,MAAMA,cAAc,CAAC;EAEjBC,WAAWA,CAACC,GAAW,EAAE;IAAA,KADzBA,GAAG;IAEC,IAAI,CAACA,GAAG,GAAGA,GAAG;EAClB;EAEAC,QAAQA,CAAA,EAAS;IACb,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACF,GAAG,CAACG,QAAQ,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;MAC/C;QACI,IAAI,IAAI,CAACF,GAAG,CAACG,QAAQ,CAACD,CAAC,CAAC,CAACG,QAAQ,CAAC,WAAW,CAAC,EAAE;UAC5C,IAAIC,MAAM,GAAG,IAAI,CAACN,GAAG,CAACG,QAAQ,CAACD,CAAC,CAAC,CAACK,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;UACxD;UACA,IAAI,CAACP,GAAG,CAACQ,QAAQ,CAACC,IAAI,CAAC,IAAI,CAACT,GAAG,CAACG,QAAQ,CAACD,CAAC,CAAC,CAACK,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;UACvE,IAAI,CAACP,GAAG,CAACU,QAAQ,CAACD,IAAI,CAACE,MAAM,CAACC,IAAI,CAAC,IAAI,CAACZ,GAAG,CAACa,OAAO,CAACX,CAAC,CAAC,CAAC,CAACE,MAAM,CAAC;QACnE;MACJ;IACJ;EACJ;AACJ;AAEA,eAAeN,cAAc","ignoreList":[]}
|