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.
- package/README.md +127 -0
- package/dist/EventHandlers.js +16 -0
- package/dist/EventHandlers.js.map +1 -0
- package/dist/ExtractContent.js +154 -0
- package/dist/ExtractContent.js.map +1 -0
- package/dist/FormFlux.Types.js +3 -0
- package/dist/FormFlux.Types.js.map +1 -0
- package/dist/FormFlux.js +472 -0
- package/dist/FormFlux.js.map +1 -0
- package/dist/FormFluxError.js +11 -0
- package/dist/FormFluxError.js.map +1 -0
- package/dist/SetBodyContentToReq.js +101 -0
- package/dist/SetBodyContentToReq.js.map +1 -0
- package/dist/SetFileContentToReqFile.js +69 -0
- package/dist/SetFileContentToReqFile.js.map +1 -0
- package/dist/WriteFileContent.js +125 -0
- package/dist/WriteFileContent.js.map +1 -0
- package/dist/declarations/EventHandlers.d.ts +7 -0
- package/dist/declarations/ExtractContent.d.ts +11 -0
- package/dist/declarations/FormFlux.Types.d.ts +51 -0
- package/dist/declarations/FormFlux.d.ts +16 -0
- package/dist/declarations/FormFluxError.d.ts +5 -0
- package/dist/declarations/SetBodyContentToReq.d.ts +10 -0
- package/dist/declarations/SetFileContentToReqFile.d.ts +11 -0
- package/dist/declarations/WriteFileContent.d.ts +17 -0
- package/dist/declarations/defaultOptions.d.ts +2 -0
- package/dist/declarations/helpers/resBodyMaker.d.ts +1 -0
- package/dist/declarations/setDatatoReqobj.d.ts +7 -0
- package/dist/declarations/setFileNameToBody.d.ts +10 -0
- package/dist/defaultOptions.js +13 -0
- package/dist/defaultOptions.js.map +1 -0
- package/dist/helpers/resBodyMaker.js +30 -0
- package/dist/helpers/resBodyMaker.js.map +1 -0
- package/dist/setDatatoReqobj.js +21 -0
- package/dist/setDatatoReqobj.js.map +1 -0
- package/dist/setFileNameToBody.js +102 -0
- package/dist/setFileNameToBody.js.map +1 -0
- 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,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,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 @@
|
|
|
1
|
+
export default function createNewBody(posArr: Array<string>, j: number, data: any): object;
|
|
@@ -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
|
+
}
|