formflux 0.0.1

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 (38) hide show
  1. package/README.md +127 -0
  2. package/dist/EventHandlers.js +16 -0
  3. package/dist/EventHandlers.js.map +1 -0
  4. package/dist/ExtractContent.js +154 -0
  5. package/dist/ExtractContent.js.map +1 -0
  6. package/dist/FormFlux.Types.js +3 -0
  7. package/dist/FormFlux.Types.js.map +1 -0
  8. package/dist/FormFlux.js +472 -0
  9. package/dist/FormFlux.js.map +1 -0
  10. package/dist/FormFluxError.js +11 -0
  11. package/dist/FormFluxError.js.map +1 -0
  12. package/dist/SetBodyContentToReq.js +101 -0
  13. package/dist/SetBodyContentToReq.js.map +1 -0
  14. package/dist/SetFileContentToReqFile.js +69 -0
  15. package/dist/SetFileContentToReqFile.js.map +1 -0
  16. package/dist/WriteFileContent.js +125 -0
  17. package/dist/WriteFileContent.js.map +1 -0
  18. package/dist/declarations/EventHandlers.d.ts +7 -0
  19. package/dist/declarations/ExtractContent.d.ts +11 -0
  20. package/dist/declarations/FormFlux.Types.d.ts +51 -0
  21. package/dist/declarations/FormFlux.d.ts +16 -0
  22. package/dist/declarations/FormFluxError.d.ts +5 -0
  23. package/dist/declarations/SetBodyContentToReq.d.ts +10 -0
  24. package/dist/declarations/SetFileContentToReqFile.d.ts +11 -0
  25. package/dist/declarations/WriteFileContent.d.ts +17 -0
  26. package/dist/declarations/defaultOptions.d.ts +2 -0
  27. package/dist/declarations/helpers/resBodyMaker.d.ts +1 -0
  28. package/dist/declarations/setDatatoReqobj.d.ts +7 -0
  29. package/dist/declarations/setFileNameToBody.d.ts +10 -0
  30. package/dist/defaultOptions.js +13 -0
  31. package/dist/defaultOptions.js.map +1 -0
  32. package/dist/helpers/resBodyMaker.js +30 -0
  33. package/dist/helpers/resBodyMaker.js.map +1 -0
  34. package/dist/setDatatoReqobj.js +21 -0
  35. package/dist/setDatatoReqobj.js.map +1 -0
  36. package/dist/setFileNameToBody.js +102 -0
  37. package/dist/setFileNameToBody.js.map +1 -0
  38. package/package.json +45 -0
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const FormFluxError_1 = __importDefault(require("./FormFluxError"));
7
+ class setFileContentToReq {
8
+ constructor(req, obj, forReason, storage) {
9
+ this.req = req;
10
+ this.obj = obj;
11
+ this.for = forReason;
12
+ this.storage = storage;
13
+ }
14
+ setFileNames(fileObj, field) {
15
+ switch (this.storage) {
16
+ case "disk": {
17
+ if (this.for == "any") {
18
+ delete fileObj["buffer"];
19
+ if (!Array.isArray(this.req["files"]))
20
+ this.req["files"] = [];
21
+ fileObj["filepath"] = fileObj["filepath"];
22
+ this.req["files"].push(fileObj);
23
+ }
24
+ else if (this.for == "fields") {
25
+ delete fileObj["buffer"];
26
+ if (!this.req["files"])
27
+ this.req["files"] = {};
28
+ if (this.req["files"][`${field}`])
29
+ this.req["files"][`${field}`].push(fileObj);
30
+ else {
31
+ this.req["files"][`${field}`] = [];
32
+ this.req["files"][`${field}`].push(fileObj);
33
+ }
34
+ }
35
+ else if (this.for == "single") {
36
+ delete fileObj["buffer"];
37
+ this.req["file"] = fileObj;
38
+ }
39
+ break;
40
+ }
41
+ case "memory": {
42
+ delete fileObj["filepath"];
43
+ if (this.for == "any") {
44
+ if (!Array.isArray(this.req["files"]))
45
+ this.req["files"] = [];
46
+ fileObj["buffer"] = fileObj["buffer"];
47
+ this.req["files"].push(fileObj);
48
+ }
49
+ else if (this.for == "fields") {
50
+ if (!this.req["files"])
51
+ this.req["files"] = {};
52
+ if (this.req["files"][`${field}`])
53
+ this.req["files"][`${field}`].push(fileObj);
54
+ else {
55
+ this.req["files"][`${field}`] = [];
56
+ this.req["files"][`${field}`].push(fileObj);
57
+ }
58
+ }
59
+ else if (this.for == "single") {
60
+ this.req["file"] = fileObj;
61
+ }
62
+ break;
63
+ }
64
+ default: throw new FormFluxError_1.default("Invalid storage option", 400);
65
+ }
66
+ }
67
+ }
68
+ exports.default = setFileContentToReq;
69
+ //# sourceMappingURL=SetFileContentToReqFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetFileContentToReqFile.js","sourceRoot":"","sources":["../src/SetFileContentToReqFile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = require("fs");
7
+ const FormFluxError_1 = __importDefault(require("./FormFluxError"));
8
+ const SetFileContentToReqFile_1 = __importDefault(require("./SetFileContentToReqFile"));
9
+ const EventHandlers_1 = __importDefault(require("./EventHandlers"));
10
+ const path_1 = __importDefault(require("path"));
11
+ class writeFileContent {
12
+ constructor(req, obj, options, forReason, storage) {
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
+ 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) {
24
+ this.singleFile(i, this.obj.metaData[i], this.obj.content[i], this.obj.filesize[i], this.obj.fieldNameFile[i]);
25
+ flag++;
26
+ }
27
+ }
28
+ if (flag == 0 || this.storage == "memory") {
29
+ EventHandlers_1.default.emitMessage("writeEnd", "write finish");
30
+ }
31
+ }
32
+ singleFile(count, metaData, content, filesize, fieldname) {
33
+ let header = metaData.split(`filename="`)[1];
34
+ let fileName = header.substring(0, header.indexOf(`"`));
35
+ let access = true;
36
+ if (this.options.fileFilter)
37
+ this.options.fileFilter(this.req, { originalname: fileName, mimetype: metaData.split("Content-Type: ")[1], filesize, fieldname }, (error, bool) => {
38
+ access = this.callBackFilter(error, bool);
39
+ });
40
+ if (!access)
41
+ throw new FormFluxError_1.default("Invalid file", 400);
42
+ this.options.filename(this.req, { originalname: fileName, mimetype: metaData.split("Content-Type: ")[1], filesize, fieldname }, (error, fileName) => {
43
+ this.callBackFilename(error, fileName);
44
+ });
45
+ this.obj.fileName.push(fileName);
46
+ if (this.storage == "disk") {
47
+ this.options["destination"](this.req, { originalname: fileName, mimetype: metaData.split("Content-Type: ")[1], filesize }, (error, filepath) => {
48
+ this.callBackfilepath(error, filepath);
49
+ });
50
+ }
51
+ if (this.for == "any") {
52
+ new SetFileContentToReqFile_1.default(this.req, this.obj, "any", this.storage).setFileNames({
53
+ originalname: fileName, mimetype: metaData.split("Content-Type: ")[1],
54
+ filepath: this.obj.filePath[count],
55
+ filesize: Buffer.from(content).length,
56
+ filename: `${this.obj.modifiedFileName[count]}`,
57
+ fieldname,
58
+ buffer: content
59
+ }, null);
60
+ }
61
+ else if (this.for == "fields") {
62
+ new SetFileContentToReqFile_1.default(this.req, this.obj, "fields", this.storage).setFileNames({
63
+ originalname: fileName, mimetype: metaData.split("Content-Type: ")[1],
64
+ filepath: this.obj.filePath[count],
65
+ filesize: Buffer.from(content).length,
66
+ filename: `${this.obj.modifiedFileName[count]}`,
67
+ fieldname,
68
+ buffer: content
69
+ }, fieldname);
70
+ }
71
+ else if (this.for == "single") {
72
+ new SetFileContentToReqFile_1.default(this.req, this.obj, "single", this.storage).setFileNames({
73
+ originalname: fileName, 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
+ }
81
+ if (!this.obj.modifiedFileName[count])
82
+ throw new FormFluxError_1.default("Filename not found", 404);
83
+ if (this.storage == "disk" && !this.obj.filePath[count])
84
+ throw new FormFluxError_1.default("Destination path not found", 404);
85
+ if (this.storage == "disk") {
86
+ let writeFile = (0, fs_1.createWriteStream)(this.obj.filePath[count]);
87
+ this.obj.streams.push(writeFile);
88
+ writeFile.write(content);
89
+ writeFile.end();
90
+ writeFile.on("error", (err) => {
91
+ for (let i = 0; i < this.obj.streams.length; i++) {
92
+ this.obj.streams[i].destroy(err);
93
+ if ((0, fs_1.existsSync)(this.obj.filePath[i]))
94
+ (0, fs_1.unlinkSync)(this.obj.filePath[i]);
95
+ }
96
+ throw new Error(err.message);
97
+ });
98
+ writeFile.on("close", () => {
99
+ EventHandlers_1.default.emitMessage("writeEnd", "write finish");
100
+ });
101
+ EventHandlers_1.default.on("parseError", () => {
102
+ this.obj.streams[0].destroy(new FormFluxError_1.default("Error in parsing form data.Invalid Format!", 400));
103
+ throw new FormFluxError_1.default("Error in parsing form data.Invalid Format!", 400);
104
+ });
105
+ }
106
+ }
107
+ callBackFilename(error, fileName) {
108
+ if (error)
109
+ throw error;
110
+ this.obj.modifiedFileName.push(fileName);
111
+ }
112
+ callBackfilepath(error, filepath) {
113
+ if (error)
114
+ throw error;
115
+ let len = this.obj.modifiedFileName.length;
116
+ this.obj.filePath.push(path_1.default.resolve(filepath, `${this.obj.modifiedFileName[len - 1]}`));
117
+ }
118
+ callBackFilter(error, bool) {
119
+ if (error)
120
+ throw error;
121
+ return bool;
122
+ }
123
+ }
124
+ exports.default = writeFileContent;
125
+ //# sourceMappingURL=WriteFileContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WriteFileContent.js","sourceRoot":"","sources":["../src/WriteFileContent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import EventEmitter from "node:events";
2
+ declare class EventHandlers extends EventEmitter {
3
+ constructor();
4
+ emitMessage(eventName: string, message: string | object): void;
5
+ }
6
+ declare const _default: EventHandlers;
7
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import { optionFields, options, optionSingle, reqObj } from "./FormFlux.Types";
2
+ declare class ExtractFileContent {
3
+ private obj;
4
+ private options;
5
+ private events;
6
+ private fieldArr;
7
+ private singleObj;
8
+ constructor(obj: reqObj, options: options | optionSingle, fieldArr: optionFields | null, singleObj: string | null);
9
+ extraction(): void;
10
+ }
11
+ export default ExtractFileContent;
@@ -0,0 +1,51 @@
1
+ import { Request } from "express";
2
+ import FormfluxError from "./FormFluxError";
3
+ export interface reqObj {
4
+ "originalReq": string;
5
+ "modifiedReq": Buffer;
6
+ "data": Array<string>;
7
+ "content": Array<Buffer>;
8
+ "contentBody": Array<string>;
9
+ "metaData": Array<string>;
10
+ "mimeType": Array<string>;
11
+ "fieldNameBody": Array<string>;
12
+ "fileName": Array<string>;
13
+ "modifiedFileName": Array<string>;
14
+ "fieldNameFile": Array<string>;
15
+ "filePath": Array<string>;
16
+ "filesize": Array<number>;
17
+ "streams": Array<any>;
18
+ }
19
+ export interface File {
20
+ mimetype: string;
21
+ originalname: string;
22
+ filesize: number;
23
+ fieldname: string;
24
+ }
25
+ export interface options {
26
+ attachFileToReqBody?: boolean;
27
+ maxFileCount?: number;
28
+ maxFileSize?: number;
29
+ maxFields?: number;
30
+ minFileCount?: number;
31
+ filename: (req: Request, file: File, cb: (error: FormfluxError | null, filename: string) => void) => void;
32
+ destination: (req: Request, file: File, cb: (error: FormfluxError | null, filepath: string) => void) => void;
33
+ fileFilter?: (req: Request, file: File, cb: (error: Error | null, bool: boolean) => void) => void;
34
+ }
35
+ export interface optionSingle {
36
+ attachFileToReqBody?: boolean;
37
+ maxFileCount?: number;
38
+ maxFileSize?: number;
39
+ maxFields?: number;
40
+ minFileCount?: number;
41
+ filename: (req: Request, file: File, cb: (error: FormfluxError | null, filename: string) => void) => void;
42
+ fileFilter?: (req: Request, file: File, cb: (error: Error | null, bool: boolean) => void) => void;
43
+ }
44
+ interface fieldObject {
45
+ name: string;
46
+ maxFileCount?: number;
47
+ maxFileSize?: number;
48
+ minFileCount?: number;
49
+ }
50
+ export type optionFields = [fieldObject, ...fieldObject[]];
51
+ export {};
@@ -0,0 +1,16 @@
1
+ import { NextFunction, Request, Response } from "express";
2
+ import { options, optionFields, optionSingle } from "./FormFlux.Types";
3
+ declare class Formflux {
4
+ static diskStorage(options: options): {
5
+ any(): (req: Request, res: Response, next: NextFunction) => Promise<void>;
6
+ fields(optionFields: optionFields): (req: Request, res: Response, next: NextFunction) => Promise<void>;
7
+ single(field: string): (req: Request, res: Response, next: NextFunction) => Promise<void>;
8
+ };
9
+ static memoryStorage(options: optionSingle): {
10
+ any(): (req: Request, res: Response, next: NextFunction) => Promise<void>;
11
+ fields(optionFields: optionFields): (req: Request, res: Response, next: NextFunction) => Promise<void>;
12
+ single(field: string): (req: Request, res: Response, next: NextFunction) => Promise<void>;
13
+ };
14
+ bodyParser(): (req: Request, res: Response, next: NextFunction) => Promise<void>;
15
+ }
16
+ export default Formflux;
@@ -0,0 +1,5 @@
1
+ declare class FormfluxError extends Error {
2
+ private statusCode;
3
+ constructor(message: string, statusCode?: number);
4
+ }
5
+ export default FormfluxError;
@@ -0,0 +1,10 @@
1
+ import { reqObj } from "./FormFlux.Types";
2
+ import { Request } from "express";
3
+ declare class setContentToBody {
4
+ private obj;
5
+ constructor(obj: reqObj);
6
+ setBody(req: Request): void;
7
+ nestedData(req: Request, fieldName: string, data: any): void;
8
+ getNestedField(req: Request, obj: object, posArr: Array<any>, keySearch: any, data: any, i: number, prevObj: object): void;
9
+ }
10
+ export default setContentToBody;
@@ -0,0 +1,11 @@
1
+ import { Request } from "express";
2
+ import { reqObj } from "./FormFlux.Types";
3
+ declare class setFileContentToReq {
4
+ private obj;
5
+ private req;
6
+ private for;
7
+ private storage;
8
+ constructor(req: Request, obj: reqObj, forReason: "any" | "fields" | "single", storage: "memory" | "disk");
9
+ setFileNames(fileObj: any, field: string | null): void;
10
+ }
11
+ export default setFileContentToReq;
@@ -0,0 +1,17 @@
1
+ import { Request } from "express";
2
+ import { options, optionSingle, reqObj } from "./FormFlux.Types";
3
+ import FormfluxError from "./FormFluxError";
4
+ declare class writeFileContent {
5
+ private obj;
6
+ private options;
7
+ private req;
8
+ private for;
9
+ private storage;
10
+ constructor(req: Request, obj: reqObj, options: options | optionSingle, forReason: "any" | "fields" | "single", storage: "memory" | "disk");
11
+ writeContent(): void;
12
+ singleFile(count: number, metaData: string, content: Buffer, filesize: number, fieldname: string): void;
13
+ callBackFilename(error: FormfluxError | null, fileName: string): void;
14
+ callBackfilepath(error: FormfluxError | null, filepath: string): void;
15
+ callBackFilter(error: FormfluxError | null, bool: boolean): boolean;
16
+ }
17
+ export default writeFileContent;
@@ -0,0 +1,2 @@
1
+ import { options } from "./FormFlux.Types";
2
+ export declare let defaultOptions: options;
@@ -0,0 +1 @@
1
+ export default function createNewBody(posArr: Array<string>, j: number, data: any): object;
@@ -0,0 +1,7 @@
1
+ import { reqObj } from "./FormFlux.Types";
2
+ declare class populateReqObj {
3
+ obj: reqObj;
4
+ constructor(obj: reqObj);
5
+ populate(): void;
6
+ }
7
+ export default populateReqObj;
@@ -0,0 +1,10 @@
1
+ import { Request } from "express";
2
+ import { reqObj } from "./FormFlux.Types";
3
+ declare class setFileNameToBody {
4
+ private obj;
5
+ constructor(obj: reqObj);
6
+ setFileNames(req: Request): void;
7
+ nestedData(req: Request, fieldName: string, data: any): void;
8
+ getNestedField(req: Request, obj: object, posArr: Array<any>, keySearch: any, data: any, i: number, prevObj: object): void;
9
+ }
10
+ export default setFileNameToBody;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultOptions = void 0;
4
+ exports.defaultOptions = {
5
+ attachFileToReqBody: false,
6
+ filename: (req, file, cb) => {
7
+ cb(null, file.originalname);
8
+ },
9
+ destination: (req, file, cb) => {
10
+ cb(null, "");
11
+ }
12
+ };
13
+ //# sourceMappingURL=defaultOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultOptions.js","sourceRoot":"","sources":["../src/defaultOptions.ts"],"names":[],"mappings":";;;AAEW,QAAA,cAAc,GAAY;IACjC,mBAAmB,EAAE,KAAK;IAC1B,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QACxB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IACD,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QAC3B,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjB,CAAC;CACJ,CAAA"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = createNewBody;
4
+ function createNewBody(posArr, j, data) {
5
+ let current;
6
+ let prev;
7
+ for (let i = posArr.length - 1; i >= j; i--) {
8
+ if (!isNaN(posArr[i]))
9
+ if (!prev) {
10
+ current = [data];
11
+ prev = current;
12
+ }
13
+ else {
14
+ current = [prev];
15
+ prev = current;
16
+ }
17
+ else {
18
+ if (!prev) {
19
+ current = { [`${posArr[i]}`]: data };
20
+ prev = current;
21
+ }
22
+ else {
23
+ current = { [`${posArr[i]}`]: prev };
24
+ prev = current;
25
+ }
26
+ }
27
+ }
28
+ return current;
29
+ }
30
+ //# sourceMappingURL=resBodyMaker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resBodyMaker.js","sourceRoot":"","sources":["../../src/helpers/resBodyMaker.ts"],"names":[],"mappings":";;AACA,gCA0BK;AA1BL,SAAwB,aAAa,CAAC,MAAoB,EAAE,CAAQ,EAAE,IAAQ;IACtE,IAAI,OAAY,CAAC;IACjB,IAAI,IAAS,CAAC;IAEd,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAQ,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,OAAO,GAAG,CAAC,IAAI,CAAC,CAAA;gBAChB,IAAI,GAAG,OAAO,CAAC;YACnB,CAAC;iBACI,CAAC;gBACF,OAAO,GAAG,CAAC,IAAI,CAAC,CAAA;gBAChB,IAAI,GAAG,OAAO,CAAC;YACnB,CAAC;aACA,CAAC;YACF,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;gBACrC,IAAI,GAAG,OAAO,CAAC;YACnB,CAAC;iBACI,CAAC;gBACF,OAAO,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAA;gBACpC,IAAI,GAAG,OAAO,CAAC;YACnB,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class populateReqObj {
4
+ constructor(obj) {
5
+ this.obj = obj;
6
+ }
7
+ populate() {
8
+ for (let i = 0; i < this.obj.metaData.length; i++) {
9
+ {
10
+ if (this.obj.metaData[i].includes(`filename=`)) {
11
+ let header = this.obj.metaData[i].split(`filename="`)[1];
12
+ // let fileName = header.substring(0, header.indexOf(`"`));
13
+ this.obj.mimeType.push(this.obj.metaData[i].split("Content-Type: ")[1]);
14
+ this.obj.filesize.push(Buffer.from(this.obj.content[i]).length);
15
+ }
16
+ }
17
+ }
18
+ }
19
+ }
20
+ exports.default = populateReqObj;
21
+ //# sourceMappingURL=setDatatoReqobj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setDatatoReqobj.js","sourceRoot":"","sources":["../src/setDatatoReqobj.ts"],"names":[],"mappings":";;AAEA,MAAM,cAAc;IAEhB,YAAY,GAAW;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAED,QAAQ;QACJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,CAAC;gBACG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC7C,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,2DAA2D;oBAC3D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACpE,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AAED,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const resBodyMaker_1 = __importDefault(require("./helpers/resBodyMaker"));
7
+ const EventHandlers_1 = __importDefault(require("./EventHandlers"));
8
+ class setFileNameToBody {
9
+ constructor(obj) {
10
+ this.obj = obj;
11
+ }
12
+ setFileNames(req) {
13
+ try {
14
+ req.body = req.body ? req.body : {};
15
+ for (let i = 0; i < this.obj.metaData.length; i++) {
16
+ if (this.obj.fileName.length > 0) {
17
+ if (/\[.*\]/.test(this.obj.fieldNameFile[i])) {
18
+ this.nestedData(req, this.obj.fieldNameFile[i], this.obj.fileName[i]);
19
+ }
20
+ if (!req.body[`${this.obj.fieldNameFile[i]}`] && !/\[.*\]/.test(this.obj.fieldNameFile[i]))
21
+ req.body[`${this.obj.fieldNameFile[i]}`] = this.obj.modifiedFileName[i];
22
+ else if (req.body[`${this.obj.fieldNameFile[i]}`] && !/\[.*\]/.test(this.obj.fieldNameFile[i]))
23
+ req.body[`${this.obj.fieldNameFile[i]}`] = [req.body[`${this.obj.fieldNameFile[i]}`], this.obj.modifiedFileName[i]].flat();
24
+ }
25
+ }
26
+ }
27
+ catch (err) {
28
+ console.log(err);
29
+ EventHandlers_1.default.emit("parseError", { message: "Error in parsing form data.Invalid Format!", code: 400 });
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
+ }
46
+ else {
47
+ current = [prev];
48
+ prev = current;
49
+ }
50
+ }
51
+ else {
52
+ if (!prev) {
53
+ current = { [`${temp[i]}`]: data };
54
+ prev = current;
55
+ }
56
+ else {
57
+ current = { [`${temp[i]}`]: prev };
58
+ prev = current;
59
+ }
60
+ }
61
+ }
62
+ req.body[`${outer}`] = current;
63
+ }
64
+ else {
65
+ temp.unshift(outer);
66
+ this.getNestedField(req, req.body, temp, temp[temp.length - 1], data, 0, req.body);
67
+ }
68
+ }
69
+ // mapping.....
70
+ getNestedField(req, obj, posArr, keySearch, data, i, prevObj) {
71
+ if (i == posArr.length - 1) { // reached last position set the value
72
+ if (Array.isArray(obj)) {
73
+ if (!isNaN(posArr[i])) { // 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
+ }
77
+ else {
78
+ obj[posArr[i]] = data; // needs some checking
79
+ return;
80
+ }
81
+ }
82
+ else { // it is an objct
83
+ obj[posArr[i]] = data;
84
+ return;
85
+ }
86
+ }
87
+ if (!obj[posArr[i]]) {
88
+ if (!isNaN(posArr[i])) {
89
+ obj[posArr[i]] = (0, resBodyMaker_1.default)(posArr, i + 1, data); // create the rest
90
+ return;
91
+ }
92
+ else {
93
+ obj[posArr[i]] = (0, resBodyMaker_1.default)(posArr, i + 1, data);
94
+ return;
95
+ }
96
+ }
97
+ prevObj = obj[posArr[i]];
98
+ this.getNestedField(req, obj[posArr[i]], posArr, keySearch, data, i + 1, prevObj);
99
+ }
100
+ }
101
+ exports.default = setFileNameToBody;
102
+ //# sourceMappingURL=setFileNameToBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setFileNameToBody.js","sourceRoot":"","sources":["../src/setFileNameToBody.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "formflux",
3
+ "version": "0.0.1",
4
+ "description": "A package to upload files to a server and parsing multipart-formData requests",
5
+ "main": "./dist/FormFlux.js",
6
+ "scripts": {
7
+ "build": "rm -rf dist && tsc --project tsconfig.json && echo 'Built successfully'"
8
+ },
9
+ "types": "./dist/declarations/FormFlux.d.ts",
10
+ "keywords": [
11
+ "FormFlux",
12
+ "formflux",
13
+ "Multer",
14
+ "multer",
15
+ "upload",
16
+ "file",
17
+ "fileuploading",
18
+ "file-upload",
19
+ "express-file-upload",
20
+ "nodejs",
21
+ "express",
22
+ "file handling",
23
+ "multipart/form-data",
24
+ "upload middleware",
25
+ "form data",
26
+ "REST API",
27
+ "file upload API",
28
+ "node file upload",
29
+ "javascript",
30
+ "http file upload",
31
+ "upload handler",
32
+ "image upload",
33
+ "document upload",
34
+ "backend upload"
35
+ ],
36
+ "author": "Arka",
37
+ "license": "ISC",
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "https://github.com/mondalArka/DocStreamPackage.git"
41
+ },
42
+ "engines": {
43
+ "node": ">=14.0.0"
44
+ }
45
+ }