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.
Files changed (64) hide show
  1. package/dist/EventHandlers.d.ts +7 -0
  2. package/dist/ExtractContent.d.ts +11 -0
  3. package/dist/FormFlux.Types.d.ts +51 -0
  4. package/dist/FormFlux.d.ts +16 -0
  5. package/dist/FormFluxError.d.ts +5 -0
  6. package/dist/SetBodyContentToReq.d.ts +10 -0
  7. package/dist/SetFileContentToReqFile.d.ts +11 -0
  8. package/dist/WriteFileContent.d.ts +17 -0
  9. package/dist/cjs/EventHandlers.js +16 -0
  10. package/dist/cjs/EventHandlers.js.map +1 -0
  11. package/dist/cjs/ExtractContent.js +146 -0
  12. package/dist/cjs/ExtractContent.js.map +1 -0
  13. package/dist/cjs/FormFlux.Types.js +2 -0
  14. package/dist/cjs/FormFlux.Types.js.map +1 -0
  15. package/dist/cjs/FormFlux.js +480 -0
  16. package/dist/cjs/FormFlux.js.map +1 -0
  17. package/dist/cjs/FormFluxError.js +14 -0
  18. package/dist/cjs/FormFluxError.js.map +1 -0
  19. package/dist/cjs/SetBodyContentToReq.js +100 -0
  20. package/dist/cjs/SetBodyContentToReq.js.map +1 -0
  21. package/dist/cjs/SetFileContentToReqFile.js +64 -0
  22. package/dist/cjs/SetFileContentToReqFile.js.map +1 -0
  23. package/dist/cjs/WriteFileContent.js +139 -0
  24. package/dist/cjs/WriteFileContent.js.map +1 -0
  25. package/dist/cjs/defaultOptions.js +14 -0
  26. package/dist/cjs/defaultOptions.js.map +1 -0
  27. package/dist/cjs/helpers/resBodyMaker.js +33 -0
  28. package/dist/cjs/helpers/resBodyMaker.js.map +1 -0
  29. package/dist/cjs/setDatatoReqobj.js +24 -0
  30. package/dist/cjs/setDatatoReqobj.js.map +1 -0
  31. package/dist/cjs/setFileNameToBody.js +103 -0
  32. package/dist/cjs/setFileNameToBody.js.map +1 -0
  33. package/dist/defaultOptions.d.ts +2 -0
  34. package/dist/esm/EventHandlers.js +11 -0
  35. package/dist/esm/EventHandlers.js.map +1 -0
  36. package/dist/esm/ExtractContent.js +141 -0
  37. package/dist/esm/ExtractContent.js.map +1 -0
  38. package/dist/esm/FormFlux.Types.js +2 -0
  39. package/dist/esm/FormFlux.Types.js.map +1 -0
  40. package/dist/esm/FormFlux.js +475 -0
  41. package/dist/esm/FormFlux.js.map +1 -0
  42. package/dist/esm/FormFluxError.js +10 -0
  43. package/dist/esm/FormFluxError.js.map +1 -0
  44. package/dist/esm/SetBodyContentToReq.js +95 -0
  45. package/dist/esm/SetBodyContentToReq.js.map +1 -0
  46. package/dist/esm/SetFileContentToReqFile.js +59 -0
  47. package/dist/esm/SetFileContentToReqFile.js.map +1 -0
  48. package/dist/esm/WriteFileContent.js +134 -0
  49. package/dist/esm/WriteFileContent.js.map +1 -0
  50. package/dist/esm/defaultOptions.js +10 -0
  51. package/dist/esm/defaultOptions.js.map +1 -0
  52. package/dist/esm/helpers/resBodyMaker.js +29 -0
  53. package/dist/esm/helpers/resBodyMaker.js.map +1 -0
  54. package/dist/esm/setDatatoReqobj.js +20 -0
  55. package/dist/esm/setDatatoReqobj.js.map +1 -0
  56. package/dist/esm/setFileNameToBody.js +98 -0
  57. package/dist/esm/setFileNameToBody.js.map +1 -0
  58. package/dist/helpers/resBodyMaker.d.ts +1 -0
  59. package/dist/package.json +61 -0
  60. package/dist/setDatatoReqobj.d.ts +7 -0
  61. package/dist/setFileNameToBody.d.ts +10 -0
  62. package/package.json +13 -3
  63. package/script/babel-package.js +3 -0
  64. package/script/babel-preset.js +21 -0
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _EventHandlers = _interopRequireDefault(require("./EventHandlers"));
6
+ var _resBodyMaker = _interopRequireDefault(require("./helpers/resBodyMaker"));
7
+ var _FormFluxError = _interopRequireDefault(require("./FormFluxError"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ class setContentToBody {
10
+ constructor(obj) {
11
+ this.obj = void 0;
12
+ this.obj = obj;
13
+ }
14
+ setBody(req) {
15
+ try {
16
+ req.body = req.body ? req.body : {};
17
+ if (this.obj.contentBody.length > 0) {
18
+ for (let i = 0; i < this.obj.contentBody.length; i++) {
19
+ if (/\[.*\]/.test(this.obj.fieldNameBody[i])) {
20
+ this.nestedData(req, this.obj.fieldNameBody[i], this.obj.contentBody[i]);
21
+ } else req.body[`${this.obj.fieldNameBody[i]}`] = this.obj.contentBody[i];
22
+ }
23
+ }
24
+ _EventHandlers.default.emitMessage("parseEnd", "parse commplete");
25
+ } catch (err) {
26
+ throw new _FormFluxError.default("Error in parsing form data.Invalid Format!", 400);
27
+ }
28
+ }
29
+ nestedData(req, fieldName, data) {
30
+ let outer = fieldName.substring(0, fieldName.indexOf("["));
31
+ let inners = fieldName.substring(fieldName.indexOf("["));
32
+ let i = 0;
33
+ let current;
34
+ let prev;
35
+ let temp = inners.match(/\[([^\]]+)\]/g).map(s => s.slice(1, -1)); // [a,b,c] => [a,b,c]
36
+ if (!req.body[`${outer}`]) {
37
+ for (let i = temp.length - 1; i >= 0; i--) {
38
+ if (!isNaN(temp[i])) {
39
+ if (!prev) {
40
+ current = [data];
41
+ prev = current;
42
+ } else {
43
+ current = [prev];
44
+ prev = current;
45
+ }
46
+ } else {
47
+ if (!prev) {
48
+ current = {
49
+ [`${temp[i]}`]: data
50
+ };
51
+ prev = current;
52
+ } else {
53
+ current = {
54
+ [`${temp[i]}`]: prev
55
+ };
56
+ prev = current;
57
+ }
58
+ }
59
+ }
60
+ req.body[`${outer}`] = current;
61
+ } else {
62
+ temp.unshift(outer);
63
+ this.getNestedField(req, req.body, temp, temp[temp.length - 1], data, 0, req.body);
64
+ }
65
+ }
66
+
67
+ // mapping.....
68
+ getNestedField(req, obj, posArr, keySearch, data, i, prevObj) {
69
+ if (i == posArr.length - 1) {
70
+ // reached last position set the value
71
+ if (Array.isArray(obj)) {
72
+ if (!isNaN(posArr[i])) {
73
+ // if the current position is a number then it is an array
74
+ obj[posArr[i]] ? obj[posArr[i]] = data : obj.push(data);
75
+ return;
76
+ } else {
77
+ obj[posArr[i]] = data; // needs some checking
78
+ return;
79
+ }
80
+ } else {
81
+ // it is an objct
82
+ obj[posArr[i]] = data;
83
+ return;
84
+ }
85
+ }
86
+ if (!obj[posArr[i]]) {
87
+ if (!isNaN(posArr[i])) {
88
+ obj[posArr[i]] = (0, _resBodyMaker.default)(posArr, i + 1, data); // create the rest
89
+ return;
90
+ } else {
91
+ obj[posArr[i]] = (0, _resBodyMaker.default)(posArr, i + 1, data);
92
+ return;
93
+ }
94
+ }
95
+ prevObj = obj[posArr[i]];
96
+ this.getNestedField(req, obj[posArr[i]], posArr, keySearch, data, i + 1, prevObj);
97
+ }
98
+ }
99
+ var _default = exports.default = setContentToBody;
100
+ //# sourceMappingURL=SetBodyContentToReq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetBodyContentToReq.js","names":["_EventHandlers","_interopRequireDefault","require","_resBodyMaker","_FormFluxError","e","__esModule","default","setContentToBody","constructor","obj","setBody","req","body","contentBody","length","i","test","fieldNameBody","nestedData","EventHandlers","emitMessage","err","FormfluxError","fieldName","data","outer","substring","indexOf","inners","current","prev","temp","match","map","s","slice","isNaN","unshift","getNestedField","posArr","keySearch","prevObj","Array","isArray","push","createNewBody","_default","exports"],"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,64 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _FormFluxError = _interopRequireDefault(require("./FormFluxError"));
6
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
7
+ class setFileContentToReq {
8
+ constructor(req, obj, forReason, storage) {
9
+ this.obj = void 0;
10
+ this.req = void 0;
11
+ this.for = void 0;
12
+ this.storage = void 0;
13
+ this.req = req;
14
+ this.obj = obj;
15
+ this.for = forReason;
16
+ this.storage = storage;
17
+ }
18
+ setFileNames(fileObj, field) {
19
+ switch (this.storage) {
20
+ case "disk":
21
+ {
22
+ if (this.for == "any") {
23
+ delete fileObj["buffer"];
24
+ if (!Array.isArray(this.req["files"])) this.req["files"] = [];
25
+ fileObj["filepath"] = fileObj["filepath"];
26
+ this.req["files"].push(fileObj);
27
+ } else if (this.for == "fields") {
28
+ delete fileObj["buffer"];
29
+ if (!this.req["files"]) this.req["files"] = {};
30
+ if (this.req["files"][`${field}`]) this.req["files"][`${field}`].push(fileObj);else {
31
+ this.req["files"][`${field}`] = [];
32
+ this.req["files"][`${field}`].push(fileObj);
33
+ }
34
+ } else if (this.for == "single") {
35
+ delete fileObj["buffer"];
36
+ this.req["file"] = fileObj;
37
+ }
38
+ break;
39
+ }
40
+ case "memory":
41
+ {
42
+ delete fileObj["filepath"];
43
+ if (this.for == "any") {
44
+ if (!Array.isArray(this.req["files"])) this.req["files"] = [];
45
+ fileObj["buffer"] = fileObj["buffer"];
46
+ this.req["files"].push(fileObj);
47
+ } else if (this.for == "fields") {
48
+ if (!this.req["files"]) this.req["files"] = {};
49
+ if (this.req["files"][`${field}`]) this.req["files"][`${field}`].push(fileObj);else {
50
+ this.req["files"][`${field}`] = [];
51
+ this.req["files"][`${field}`].push(fileObj);
52
+ }
53
+ } else if (this.for == "single") {
54
+ this.req["file"] = fileObj;
55
+ }
56
+ break;
57
+ }
58
+ default:
59
+ throw new _FormFluxError.default("Invalid storage option", 400);
60
+ }
61
+ }
62
+ }
63
+ var _default = exports.default = setFileContentToReq;
64
+ //# sourceMappingURL=SetFileContentToReqFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetFileContentToReqFile.js","names":["_FormFluxError","_interopRequireDefault","require","e","__esModule","default","setFileContentToReq","constructor","req","obj","forReason","storage","for","setFileNames","fileObj","field","Array","isArray","push","FormfluxError","_default","exports"],"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":";;;;AAEA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA4C,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5C,MAAMG,mBAAmB,CAAC;EAKtBC,WAAWA,CAACC,GAAY,EAAEC,GAAW,EAAEC,SAAsC,EAAEC,OAA0B,EAAE;IAAA,KAJnGF,GAAG;IAAA,KACHD,GAAG;IAAA,KACHI,GAAG;IAAA,KACHD,OAAO;IAEX,IAAI,CAACH,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,GAAG,GAAGA,GAAG;IACd,IAAI,CAACG,GAAG,GAAGF,SAAS;IACpB,IAAI,CAACC,OAAO,GAAGA,OAAO;EAC1B;EAEAE,YAAYA,CAACC,OAAY,EAAEC,KAAoB,EAAQ;IACnD,QAAQ,IAAI,CAACJ,OAAO;MAChB,KAAK,MAAM;QAAE;UACT,IAAI,IAAI,CAACC,GAAG,IAAI,KAAK,EAAE;YACnB,OAAOE,OAAO,CAAC,QAAQ,CAAC;YACxB,IAAI,CAACE,KAAK,CAACC,OAAO,CAAC,IAAI,CAACT,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAACA,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE;YAC7DM,OAAO,CAAC,UAAU,CAAC,GAAGA,OAAO,CAAC,UAAU,CAAC;YACzC,IAAI,CAACN,GAAG,CAAC,OAAO,CAAC,CAACU,IAAI,CAACJ,OAAO,CAAC;UACnC,CAAC,MACI,IAAI,IAAI,CAACF,GAAG,IAAI,QAAQ,EAAE;YAC3B,OAAOE,OAAO,CAAC,QAAQ,CAAC;YACxB,IAAI,CAAC,IAAI,CAACN,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAACA,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,IAAI,CAACA,GAAG,CAAC,OAAO,CAAC,CAAC,GAAGO,KAAK,EAAE,CAAC,EAC7B,IAAI,CAACP,GAAG,CAAC,OAAO,CAAC,CAAC,GAAGO,KAAK,EAAE,CAAC,CAACG,IAAI,CAACJ,OAAO,CAAC,CAAC,KAC3C;cACD,IAAI,CAACN,GAAG,CAAC,OAAO,CAAC,CAAC,GAAGO,KAAK,EAAE,CAAC,GAAG,EAAE;cAClC,IAAI,CAACP,GAAG,CAAC,OAAO,CAAC,CAAC,GAAGO,KAAK,EAAE,CAAC,CAACG,IAAI,CAACJ,OAAO,CAAC;YAC/C;UACJ,CAAC,MACI,IAAI,IAAI,CAACF,GAAG,IAAI,QAAQ,EAAE;YAC3B,OAAOE,OAAO,CAAC,QAAQ,CAAC;YACxB,IAAI,CAACN,GAAG,CAAC,MAAM,CAAC,GAAGM,OAAO;UAC9B;UACA;QACJ;MAEA,KAAK,QAAQ;QAAE;UACX,OAAOA,OAAO,CAAC,UAAU,CAAC;UAC1B,IAAI,IAAI,CAACF,GAAG,IAAI,KAAK,EAAE;YACnB,IAAI,CAACI,KAAK,CAACC,OAAO,CAAC,IAAI,CAACT,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAACA,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE;YAC7DM,OAAO,CAAC,QAAQ,CAAC,GAAGA,OAAO,CAAC,QAAQ,CAAC;YACrC,IAAI,CAACN,GAAG,CAAC,OAAO,CAAC,CAACU,IAAI,CAACJ,OAAO,CAAC;UACnC,CAAC,MACI,IAAI,IAAI,CAACF,GAAG,IAAI,QAAQ,EAAE;YAC3B,IAAI,CAAC,IAAI,CAACJ,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAACA,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,IAAI,CAACA,GAAG,CAAC,OAAO,CAAC,CAAC,GAAGO,KAAK,EAAE,CAAC,EAC7B,IAAI,CAACP,GAAG,CAAC,OAAO,CAAC,CAAC,GAAGO,KAAK,EAAE,CAAC,CAACG,IAAI,CAACJ,OAAO,CAAC,CAAC,KAC3C;cACD,IAAI,CAACN,GAAG,CAAC,OAAO,CAAC,CAAC,GAAGO,KAAK,EAAE,CAAC,GAAG,EAAE;cAClC,IAAI,CAACP,GAAG,CAAC,OAAO,CAAC,CAAC,GAAGO,KAAK,EAAE,CAAC,CAACG,IAAI,CAACJ,OAAO,CAAC;YAC/C;UACJ,CAAC,MACI,IAAI,IAAI,CAACF,GAAG,IAAI,QAAQ,EAAE;YAC3B,IAAI,CAACJ,GAAG,CAAC,MAAM,CAAC,GAAGM,OAAO;UAC9B;UACA;QACJ;MAEA;QAAS,MAAM,IAAIK,sBAAa,CAAC,wBAAwB,EAAE,GAAG,CAAC;IACnE;EACJ;AACJ;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAhB,OAAA,GAEcC,mBAAmB","ignoreList":[]}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _fs = require("fs");
6
+ var _FormFluxError = _interopRequireDefault(require("./FormFluxError"));
7
+ var _SetFileContentToReqFile = _interopRequireDefault(require("./SetFileContentToReqFile"));
8
+ var _EventHandlers = _interopRequireDefault(require("./EventHandlers"));
9
+ var _path = _interopRequireDefault(require("path"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ class writeFileContent {
12
+ constructor(req, obj, options, forReason, storage) {
13
+ this.obj = void 0;
14
+ this.options = void 0;
15
+ this.req = void 0;
16
+ this.for = void 0;
17
+ this.storage = void 0;
18
+ this.obj = obj;
19
+ this.options = options;
20
+ this.req = req;
21
+ this.for = forReason;
22
+ this.storage = storage;
23
+ }
24
+ writeContent() {
25
+ let flag = 0;
26
+ if (this.obj.content.length > 0) {
27
+ for (let i = 0; i < this.obj.metaData.length; i++) {
28
+ var _this$obj$metaData$i, _this$obj$content$i, _this$obj$fileName$i, _this$obj$fieldNameFi;
29
+ 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) {
30
+ this.singleFile(i, this.obj.metaData[i], this.obj.content[i], this.obj.filesize[i], this.obj.fieldNameFile[i]);
31
+ flag++;
32
+ }
33
+ }
34
+ }
35
+ if (flag == 0 || this.storage == "memory") {
36
+ _EventHandlers.default.emitMessage("writeEnd", "write finish");
37
+ }
38
+ }
39
+ singleFile(count, metaData, content, filesize, fieldname) {
40
+ let header = metaData.split(`filename="`)[1];
41
+ let fileName = header.substring(0, header.indexOf(`"`));
42
+ let access = true;
43
+ if (this.options.fileFilter) this.options.fileFilter(this.req, {
44
+ originalname: fileName,
45
+ mimetype: metaData.split("Content-Type: ")[1],
46
+ filesize,
47
+ fieldname
48
+ }, (error, bool) => {
49
+ access = this.callBackFilter(error, bool);
50
+ });
51
+ if (!access) throw new _FormFluxError.default("Invalid file", 400);
52
+ this.options.filename(this.req, {
53
+ originalname: fileName,
54
+ mimetype: metaData.split("Content-Type: ")[1],
55
+ filesize,
56
+ fieldname
57
+ }, (error, fileName) => {
58
+ this.callBackFilename(error, fileName);
59
+ });
60
+ this.obj.fileName.push(fileName);
61
+ if (this.storage == "disk") {
62
+ this.options["destination"](this.req, {
63
+ originalname: fileName,
64
+ mimetype: metaData.split("Content-Type: ")[1],
65
+ filesize
66
+ }, (error, filepath) => {
67
+ this.callBackfilepath(error, filepath);
68
+ });
69
+ }
70
+ if (this.for == "any") {
71
+ new _SetFileContentToReqFile.default(this.req, this.obj, "any", this.storage).setFileNames({
72
+ originalname: fileName,
73
+ mimetype: metaData.split("Content-Type: ")[1],
74
+ filepath: this.obj.filePath[count],
75
+ filesize: Buffer.from(content).length,
76
+ filename: `${this.obj.modifiedFileName[count]}`,
77
+ fieldname,
78
+ buffer: content
79
+ }, null);
80
+ } else if (this.for == "fields") {
81
+ new _SetFileContentToReqFile.default(this.req, this.obj, "fields", this.storage).setFileNames({
82
+ originalname: fileName,
83
+ mimetype: metaData.split("Content-Type: ")[1],
84
+ filepath: this.obj.filePath[count],
85
+ filesize: Buffer.from(content).length,
86
+ filename: `${this.obj.modifiedFileName[count]}`,
87
+ fieldname,
88
+ buffer: content
89
+ }, fieldname);
90
+ } else if (this.for == "single") {
91
+ new _SetFileContentToReqFile.default(this.req, this.obj, "single", this.storage).setFileNames({
92
+ originalname: fileName,
93
+ mimetype: metaData.split("Content-Type: ")[1],
94
+ filepath: this.obj.filePath[count],
95
+ filesize: Buffer.from(content).length,
96
+ filename: `${this.obj.modifiedFileName[count]}`,
97
+ fieldname,
98
+ buffer: content
99
+ }, null);
100
+ }
101
+ if (!this.obj.modifiedFileName[count]) throw new _FormFluxError.default("Filename not found", 404);
102
+ if (this.storage == "disk" && !this.obj.filePath[count]) throw new _FormFluxError.default("Destination path not found", 404);
103
+ if (this.storage == "disk") {
104
+ let writeFile = (0, _fs.createWriteStream)(this.obj.filePath[count]);
105
+ this.obj.streams.push(writeFile);
106
+ writeFile.write(content);
107
+ writeFile.end();
108
+ writeFile.on("error", err => {
109
+ for (let i = 0; i < this.obj.streams.length; i++) {
110
+ this.obj.streams[i].destroy(err);
111
+ if ((0, _fs.existsSync)(this.obj.filePath[i])) (0, _fs.unlinkSync)(this.obj.filePath[i]);
112
+ }
113
+ throw new Error(err.message);
114
+ });
115
+ writeFile.on("close", () => {
116
+ _EventHandlers.default.emitMessage("writeEnd", "write finish");
117
+ });
118
+ _EventHandlers.default.on("parseError", () => {
119
+ this.obj.streams[0].destroy(new _FormFluxError.default("Error in parsing form data.Invalid Format!", 400));
120
+ throw new _FormFluxError.default("Error in parsing form data.Invalid Format!", 400);
121
+ });
122
+ }
123
+ }
124
+ callBackFilename(error, fileName) {
125
+ if (error) throw error;
126
+ this.obj.modifiedFileName.push(fileName);
127
+ }
128
+ callBackfilepath(error, filepath) {
129
+ if (error) throw error;
130
+ let len = this.obj.modifiedFileName.length;
131
+ this.obj.filePath.push(_path.default.resolve(filepath, `${this.obj.modifiedFileName[len - 1]}`));
132
+ }
133
+ callBackFilter(error, bool) {
134
+ if (error) throw error;
135
+ return bool;
136
+ }
137
+ }
138
+ var _default = exports.default = writeFileContent;
139
+ //# sourceMappingURL=WriteFileContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteFileContent.js","names":["_fs","require","_FormFluxError","_interopRequireDefault","_SetFileContentToReqFile","_EventHandlers","_path","e","__esModule","default","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","EventHandlers","emitMessage","count","fieldname","header","split","substring","indexOf","access","fileFilter","originalname","mimetype","error","bool","callBackFilter","FormfluxError","filename","callBackFilename","push","filepath","callBackfilepath","setFileContentToReq","setFileNames","filePath","Buffer","from","modifiedFileName","buffer","writeFile","createWriteStream","streams","write","end","on","err","destroy","existsSync","unlinkSync","Error","message","len","path","resolve","_default","exports"],"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,14 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.defaultOptions = void 0;
5
+ let defaultOptions = exports.defaultOptions = {
6
+ attachFileToReqBody: false,
7
+ filename: (req, file, cb) => {
8
+ cb(null, file.originalname);
9
+ },
10
+ destination: (req, file, cb) => {
11
+ cb(null, "");
12
+ }
13
+ };
14
+ //# sourceMappingURL=defaultOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultOptions.js","names":["defaultOptions","exports","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":";;;;AAEO,IAAIA,cAAuB,GAAAC,OAAA,CAAAD,cAAA,GAAG;EACjCE,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,33 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = createNewBody;
5
+ function createNewBody(posArr, j, data) {
6
+ let current;
7
+ let prev;
8
+ for (let i = posArr.length - 1; i >= j; i--) {
9
+ if (!isNaN(posArr[i])) {
10
+ if (!prev) {
11
+ current = [data];
12
+ prev = current;
13
+ } else {
14
+ current = [prev];
15
+ prev = current;
16
+ }
17
+ } else {
18
+ if (!prev) {
19
+ current = {
20
+ [`${posArr[i]}`]: data
21
+ };
22
+ prev = current;
23
+ } else {
24
+ current = {
25
+ [`${posArr[i]}`]: prev
26
+ };
27
+ prev = current;
28
+ }
29
+ }
30
+ }
31
+ return current;
32
+ }
33
+ //# 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":";;;;AACe,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,24 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ class populateReqObj {
6
+ constructor(obj) {
7
+ this.obj = void 0;
8
+ this.obj = obj;
9
+ }
10
+ populate() {
11
+ for (let i = 0; i < this.obj.metaData.length; i++) {
12
+ {
13
+ if (this.obj.metaData[i].includes(`filename=`)) {
14
+ let header = this.obj.metaData[i].split(`filename="`)[1];
15
+ // let fileName = header.substring(0, header.indexOf(`"`));
16
+ this.obj.mimeType.push(this.obj.metaData[i].split("Content-Type: ")[1]);
17
+ this.obj.filesize.push(Buffer.from(this.obj.content[i]).length);
18
+ }
19
+ }
20
+ }
21
+ }
22
+ }
23
+ var _default = exports.default = populateReqObj;
24
+ //# 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","_default","exports","default"],"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;AAAC,IAAAU,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEclB,cAAc","ignoreList":[]}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _resBodyMaker = _interopRequireDefault(require("./helpers/resBodyMaker"));
6
+ var _EventHandlers = _interopRequireDefault(require("./EventHandlers"));
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ class setFileNameToBody {
9
+ constructor(obj) {
10
+ this.obj = void 0;
11
+ this.obj = obj;
12
+ }
13
+ setFileNames(req) {
14
+ try {
15
+ req.body = req.body ? req.body : {};
16
+ for (let i = 0; i < this.obj.metaData.length; i++) {
17
+ if (this.obj.fileName.length > 0) {
18
+ if (/\[.*\]/.test(this.obj.fieldNameFile[i])) {
19
+ this.nestedData(req, this.obj.fieldNameFile[i], this.obj.fileName[i]);
20
+ }
21
+ if (!req.body[`${this.obj.fieldNameFile[i]}`] && !/\[.*\]/.test(this.obj.fieldNameFile[i])) req.body[`${this.obj.fieldNameFile[i]}`] = this.obj.modifiedFileName[i];else if (req.body[`${this.obj.fieldNameFile[i]}`] && !/\[.*\]/.test(this.obj.fieldNameFile[i])) req.body[`${this.obj.fieldNameFile[i]}`] = [req.body[`${this.obj.fieldNameFile[i]}`], this.obj.modifiedFileName[i]].flat();
22
+ }
23
+ }
24
+ } catch (err) {
25
+ console.log(err);
26
+ _EventHandlers.default.emit("parseError", {
27
+ message: "Error in parsing form data.Invalid Format!",
28
+ code: 400
29
+ });
30
+ }
31
+ }
32
+ nestedData(req, fieldName, data) {
33
+ let outer = fieldName.substring(0, fieldName.indexOf("["));
34
+ let inners = fieldName.substring(fieldName.indexOf("["));
35
+ let i = 0;
36
+ let current;
37
+ let prev;
38
+ let temp = inners.match(/\[([^\]]+)\]/g).map(s => s.slice(1, -1)); // [a,b,c] => [a,b,c]
39
+ if (!req.body[`${outer}`]) {
40
+ for (let i = temp.length - 1; i >= 0; i--) {
41
+ if (!isNaN(temp[i])) {
42
+ if (!prev) {
43
+ current = [data];
44
+ prev = current;
45
+ } else {
46
+ current = [prev];
47
+ prev = current;
48
+ }
49
+ } else {
50
+ if (!prev) {
51
+ current = {
52
+ [`${temp[i]}`]: data
53
+ };
54
+ prev = current;
55
+ } else {
56
+ current = {
57
+ [`${temp[i]}`]: prev
58
+ };
59
+ prev = current;
60
+ }
61
+ }
62
+ }
63
+ req.body[`${outer}`] = current;
64
+ } else {
65
+ temp.unshift(outer);
66
+ this.getNestedField(req, req.body, temp, temp[temp.length - 1], data, 0, req.body);
67
+ }
68
+ }
69
+
70
+ // mapping.....
71
+ getNestedField(req, obj, posArr, keySearch, data, i, prevObj) {
72
+ if (i == posArr.length - 1) {
73
+ // reached last position set the value
74
+ if (Array.isArray(obj)) {
75
+ if (!isNaN(posArr[i])) {
76
+ // if the current position is a number then it is an array
77
+ obj[posArr[i]] ? obj[posArr[i]] = data : obj.push(data);
78
+ return;
79
+ } else {
80
+ obj[posArr[i]] = data; // needs some checking
81
+ return;
82
+ }
83
+ } else {
84
+ // it is an objct
85
+ obj[posArr[i]] = data;
86
+ return;
87
+ }
88
+ }
89
+ if (!obj[posArr[i]]) {
90
+ if (!isNaN(posArr[i])) {
91
+ obj[posArr[i]] = (0, _resBodyMaker.default)(posArr, i + 1, data); // create the rest
92
+ return;
93
+ } else {
94
+ obj[posArr[i]] = (0, _resBodyMaker.default)(posArr, i + 1, data);
95
+ return;
96
+ }
97
+ }
98
+ prevObj = obj[posArr[i]];
99
+ this.getNestedField(req, obj[posArr[i]], posArr, keySearch, data, i + 1, prevObj);
100
+ }
101
+ }
102
+ var _default = exports.default = setFileNameToBody;
103
+ //# sourceMappingURL=setFileNameToBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setFileNameToBody.js","names":["_resBodyMaker","_interopRequireDefault","require","_EventHandlers","e","__esModule","default","setFileNameToBody","constructor","obj","setFileNames","req","body","i","metaData","length","fileName","test","fieldNameFile","nestedData","modifiedFileName","flat","err","console","log","EventHandlers","emit","message","code","fieldName","data","outer","substring","indexOf","inners","current","prev","temp","match","map","s","slice","isNaN","unshift","getNestedField","posArr","keySearch","prevObj","Array","isArray","push","createNewBody","_default","exports"],"sources":["../../src/setFileNameToBody.ts"],"sourcesContent":["import { Request } from \"express\";\nimport { reqObj } from \"./FormFlux.Types\";\nimport createNewBody from \"./helpers/resBodyMaker\";\nimport EventHandlers from \"./EventHandlers\";\n\nclass setFileNameToBody {\n private obj: reqObj\n constructor(obj: reqObj) {\n this.obj = obj;\n }\n\n setFileNames(req: Request): void {\n try {\n req.body = req.body ? req.body : {};\n for (let i = 0; i < this.obj.metaData.length; i++) {\n if (this.obj.fileName.length > 0) {\n\n if (/\\[.*\\]/.test(this.obj.fieldNameFile[i])) {\n this.nestedData(req, this.obj.fieldNameFile[i], this.obj.fileName[i]);\n } \n if (!req.body[`${this.obj.fieldNameFile[i]}`] && !/\\[.*\\]/.test(this.obj.fieldNameFile[i]))\n req.body[`${this.obj.fieldNameFile[i]}`] = this.obj.modifiedFileName[i];\n else if (req.body[`${this.obj.fieldNameFile[i]}`] && !/\\[.*\\]/.test(this.obj.fieldNameFile[i]))\n req.body[`${this.obj.fieldNameFile[i]}`] = [req.body[`${this.obj.fieldNameFile[i]}`], this.obj.modifiedFileName[i]].flat();\n }\n }\n } catch (err) {\n console.log(err);\n EventHandlers.emit(\"parseError\",{message:\"Error in parsing form data.Invalid Format!\",code: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}\n\nexport default setFileNameToBody;"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import { options } from "./FormFlux.Types";
2
+ export declare let defaultOptions: options;
@@ -0,0 +1,11 @@
1
+ import EventEmitter from "node:events";
2
+ class EventHandlers extends EventEmitter {
3
+ constructor() {
4
+ super();
5
+ }
6
+ emitMessage(eventName, message) {
7
+ this.emit(eventName, message);
8
+ }
9
+ }
10
+ export default new EventHandlers();
11
+ //# sourceMappingURL=EventHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventHandlers.js","names":["EventEmitter","EventHandlers","constructor","emitMessage","eventName","message","emit"],"sources":["../../src/EventHandlers.ts"],"sourcesContent":["import EventEmitter from \"node:events\";\n\n class EventHandlers extends EventEmitter {\n constructor() {\n super();\n }\n\n emitMessage(eventName: string, message: string | object) {\n this.emit(eventName, message);\n }\n}\n\nexport default new EventHandlers();"],"mappings":"AAAA,OAAOA,YAAY,MAAM,aAAa;AAErC,MAAMC,aAAa,SAASD,YAAY,CAAC;EACtCE,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,CAAC;EACX;EAEAC,WAAWA,CAACC,SAAiB,EAAEC,OAAwB,EAAE;IACrD,IAAI,CAACC,IAAI,CAACF,SAAS,EAAEC,OAAO,CAAC;EACjC;AACJ;AAEA,eAAe,IAAIJ,aAAa,CAAC,CAAC","ignoreList":[]}