formflux 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/EventHandlers.js +16 -0
- package/dist/cjs/EventHandlers.js.map +1 -0
- package/dist/cjs/ExtractContent.js +146 -0
- package/dist/cjs/ExtractContent.js.map +1 -0
- package/dist/cjs/FormFlux.Types.js +2 -0
- package/dist/cjs/FormFlux.Types.js.map +1 -0
- package/dist/cjs/FormFlux.js +480 -0
- package/dist/cjs/FormFlux.js.map +1 -0
- package/dist/cjs/FormFluxError.js +14 -0
- package/dist/cjs/FormFluxError.js.map +1 -0
- package/dist/cjs/SetBodyContentToReq.js +100 -0
- package/dist/cjs/SetBodyContentToReq.js.map +1 -0
- package/dist/cjs/SetFileContentToReqFile.js +64 -0
- package/dist/cjs/SetFileContentToReqFile.js.map +1 -0
- package/dist/cjs/WriteFileContent.js +139 -0
- package/dist/cjs/WriteFileContent.js.map +1 -0
- package/dist/cjs/defaultOptions.js +14 -0
- package/dist/cjs/defaultOptions.js.map +1 -0
- package/dist/cjs/helpers/resBodyMaker.js +33 -0
- package/dist/cjs/helpers/resBodyMaker.js.map +1 -0
- package/dist/cjs/setDatatoReqobj.js +24 -0
- package/dist/cjs/setDatatoReqobj.js.map +1 -0
- package/dist/cjs/setFileNameToBody.js +103 -0
- package/dist/cjs/setFileNameToBody.js.map +1 -0
- package/dist/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/esm/EventHandlers.js +11 -0
- package/dist/esm/EventHandlers.js.map +1 -0
- package/dist/esm/ExtractContent.js +141 -0
- package/dist/esm/ExtractContent.js.map +1 -0
- package/dist/esm/FormFlux.Types.js +2 -0
- package/dist/esm/FormFlux.Types.js.map +1 -0
- package/dist/esm/FormFlux.js +475 -0
- package/dist/esm/FormFlux.js.map +1 -0
- package/dist/esm/FormFluxError.js +10 -0
- package/dist/esm/FormFluxError.js.map +1 -0
- package/dist/esm/SetBodyContentToReq.js +95 -0
- package/dist/esm/SetBodyContentToReq.js.map +1 -0
- package/dist/esm/SetFileContentToReqFile.js +59 -0
- package/dist/esm/SetFileContentToReqFile.js.map +1 -0
- package/dist/esm/WriteFileContent.js +134 -0
- package/dist/esm/WriteFileContent.js.map +1 -0
- package/dist/esm/defaultOptions.js +10 -0
- package/dist/esm/defaultOptions.js.map +1 -0
- package/dist/esm/helpers/resBodyMaker.js +29 -0
- package/dist/esm/helpers/resBodyMaker.js.map +1 -0
- package/dist/esm/setDatatoReqobj.js +20 -0
- package/dist/esm/setDatatoReqobj.js.map +1 -0
- package/dist/esm/setFileNameToBody.js +98 -0
- package/dist/esm/setFileNameToBody.js.map +1 -0
- package/dist/package.json +61 -0
- package/package.json +13 -3
- package/script/babel-package.js +3 -0
- package/script/babel-preset.js +21 -0
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
import ExtractFileContent from "./ExtractContent";
|
|
2
|
+
import writeFileContent from "./WriteFileContent";
|
|
3
|
+
import setContentToBody from "./SetBodyContentToReq";
|
|
4
|
+
import setFileNameToBody from "./setFileNameToBody";
|
|
5
|
+
import populateReqObj from "./setDatatoReqobj";
|
|
6
|
+
import EventHandlers from "./EventHandlers";
|
|
7
|
+
import FormfluxError from "./FormFluxError";
|
|
8
|
+
class Formflux {
|
|
9
|
+
static diskStorage(options) {
|
|
10
|
+
return {
|
|
11
|
+
any() {
|
|
12
|
+
return async function (req, res, next) {
|
|
13
|
+
var _req$headers$content;
|
|
14
|
+
let obj = {
|
|
15
|
+
"originalReq": "",
|
|
16
|
+
"modifiedReq": Buffer.from(""),
|
|
17
|
+
"data": [],
|
|
18
|
+
"content": [],
|
|
19
|
+
"metaData": [],
|
|
20
|
+
"mimeType": [],
|
|
21
|
+
"fieldNameBody": [],
|
|
22
|
+
"fileName": [],
|
|
23
|
+
"modifiedFileName": [],
|
|
24
|
+
"contentBody": [],
|
|
25
|
+
"fieldNameFile": [],
|
|
26
|
+
"filePath": [],
|
|
27
|
+
"filesize": [],
|
|
28
|
+
"streams": []
|
|
29
|
+
};
|
|
30
|
+
let buff = [];
|
|
31
|
+
let reqType = req.headers["content-type"];
|
|
32
|
+
if (reqType && !reqType.includes("multipart/form-data")) throw new FormfluxError("Invalid Request Type.Expected multipart/form-data", 400);
|
|
33
|
+
let boundary = (_req$headers$content = req.headers["content-type"]) == null ? void 0 : _req$headers$content.split("boundary=")[1];
|
|
34
|
+
req.on("data", chunk => {
|
|
35
|
+
buff.push(chunk);
|
|
36
|
+
});
|
|
37
|
+
req.on("end", () => {
|
|
38
|
+
try {
|
|
39
|
+
var _obj$modifiedReq$toSt;
|
|
40
|
+
obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer
|
|
41
|
+
|
|
42
|
+
obj.data = (_obj$modifiedReq$toSt = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt.split(`--${boundary}`); // separating the boundary
|
|
43
|
+
obj.data.pop();
|
|
44
|
+
obj.data.shift();
|
|
45
|
+
|
|
46
|
+
//*****Defaults*****
|
|
47
|
+
//To*********extract content
|
|
48
|
+
new ExtractFileContent(obj, options, null, null).extraction();
|
|
49
|
+
|
|
50
|
+
//To*********SetFileDataToReqObj
|
|
51
|
+
new populateReqObj(obj).populate();
|
|
52
|
+
let writeBool = false;
|
|
53
|
+
let parseBool = false;
|
|
54
|
+
let checkCompletion = (writeComplete, parsecomplete) => {
|
|
55
|
+
if (writeComplete && parsecomplete) next();
|
|
56
|
+
};
|
|
57
|
+
EventHandlers.on("parseEnd", message => {
|
|
58
|
+
parseBool = true;
|
|
59
|
+
checkCompletion(writeBool, parseBool);
|
|
60
|
+
});
|
|
61
|
+
EventHandlers.on("writeEnd", message => {
|
|
62
|
+
writeBool = true;
|
|
63
|
+
checkCompletion(writeBool, parseBool);
|
|
64
|
+
});
|
|
65
|
+
new writeFileContent(req, obj, options, "any", "disk").writeContent();
|
|
66
|
+
if (options.attachFileToReqBody && options.attachFileToReqBody == true) new setFileNameToBody(obj).setFileNames(req);
|
|
67
|
+
new setContentToBody(obj).setBody(req);
|
|
68
|
+
} catch (err) {
|
|
69
|
+
next(err);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
req.on("error", () => {
|
|
73
|
+
next(new FormfluxError("Error in recieving request", 500));
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
},
|
|
77
|
+
fields(optionFields) {
|
|
78
|
+
return async function (req, res, next) {
|
|
79
|
+
var _req$headers$content2;
|
|
80
|
+
let obj = {
|
|
81
|
+
"originalReq": "",
|
|
82
|
+
"modifiedReq": Buffer.from(""),
|
|
83
|
+
"data": [],
|
|
84
|
+
"content": [],
|
|
85
|
+
"metaData": [],
|
|
86
|
+
"mimeType": [],
|
|
87
|
+
"fieldNameBody": [],
|
|
88
|
+
"fileName": [],
|
|
89
|
+
"modifiedFileName": [],
|
|
90
|
+
"contentBody": [],
|
|
91
|
+
"fieldNameFile": [],
|
|
92
|
+
"filePath": [],
|
|
93
|
+
"filesize": [],
|
|
94
|
+
"streams": []
|
|
95
|
+
};
|
|
96
|
+
let buff = [];
|
|
97
|
+
let reqType = req.headers["content-type"];
|
|
98
|
+
if (reqType && !reqType.includes("multipart/form-data")) throw new FormfluxError("Invalid Request Type.Expected multipart/form-data", 400);
|
|
99
|
+
let boundary = (_req$headers$content2 = req.headers["content-type"]) == null ? void 0 : _req$headers$content2.split("boundary=")[1];
|
|
100
|
+
req.on("data", chunk => {
|
|
101
|
+
buff.push(chunk);
|
|
102
|
+
});
|
|
103
|
+
req.on("end", () => {
|
|
104
|
+
try {
|
|
105
|
+
var _obj$modifiedReq$toSt2;
|
|
106
|
+
obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer
|
|
107
|
+
|
|
108
|
+
obj.data = (_obj$modifiedReq$toSt2 = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt2.split(`--${boundary}`); // separating the boundary
|
|
109
|
+
obj.data.pop();
|
|
110
|
+
obj.data.shift();
|
|
111
|
+
|
|
112
|
+
//*****Defaults*****
|
|
113
|
+
//To*********extract content
|
|
114
|
+
new ExtractFileContent(obj, options, optionFields, null).extraction();
|
|
115
|
+
|
|
116
|
+
//To*********SetFileDataToReqObj
|
|
117
|
+
new populateReqObj(obj).populate();
|
|
118
|
+
let writeBool = false;
|
|
119
|
+
let parseBool = false;
|
|
120
|
+
let checkCompletion = (writeComplete, parsecomplete) => {
|
|
121
|
+
if (writeComplete && parsecomplete) next();
|
|
122
|
+
};
|
|
123
|
+
EventHandlers.on("parseEnd", message => {
|
|
124
|
+
parseBool = true;
|
|
125
|
+
checkCompletion(writeBool, parseBool);
|
|
126
|
+
});
|
|
127
|
+
EventHandlers.on("writeEnd", message => {
|
|
128
|
+
writeBool = true;
|
|
129
|
+
checkCompletion(writeBool, parseBool);
|
|
130
|
+
});
|
|
131
|
+
new writeFileContent(req, obj, options, "fields", "disk").writeContent();
|
|
132
|
+
// new setFileContentToReq(obj).setFileNames(req);
|
|
133
|
+
if (options.attachFileToReqBody && options.attachFileToReqBody == true) new setFileNameToBody(obj).setFileNames(req);
|
|
134
|
+
new setContentToBody(obj).setBody(req);
|
|
135
|
+
} catch (err) {
|
|
136
|
+
next(err);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
req.on("error", () => {
|
|
140
|
+
next(new FormfluxError("Error in recieving request", 500));
|
|
141
|
+
});
|
|
142
|
+
};
|
|
143
|
+
},
|
|
144
|
+
single(field) {
|
|
145
|
+
return async function (req, res, next) {
|
|
146
|
+
var _req$headers$content3;
|
|
147
|
+
let obj = {
|
|
148
|
+
"originalReq": "",
|
|
149
|
+
"modifiedReq": Buffer.from(""),
|
|
150
|
+
"data": [],
|
|
151
|
+
"content": [],
|
|
152
|
+
"metaData": [],
|
|
153
|
+
"mimeType": [],
|
|
154
|
+
"fieldNameBody": [],
|
|
155
|
+
"fileName": [],
|
|
156
|
+
"modifiedFileName": [],
|
|
157
|
+
"contentBody": [],
|
|
158
|
+
"fieldNameFile": [],
|
|
159
|
+
"filePath": [],
|
|
160
|
+
"filesize": [],
|
|
161
|
+
"streams": []
|
|
162
|
+
};
|
|
163
|
+
let buff = [];
|
|
164
|
+
let reqType = req.headers["content-type"];
|
|
165
|
+
if (reqType && !reqType.includes("multipart/form-data")) throw new FormfluxError("Invalid Request Type.Expected multipart/form-data", 400);
|
|
166
|
+
let boundary = (_req$headers$content3 = req.headers["content-type"]) == null ? void 0 : _req$headers$content3.split("boundary=")[1];
|
|
167
|
+
req.on("data", chunk => {
|
|
168
|
+
buff.push(chunk);
|
|
169
|
+
});
|
|
170
|
+
req.on("end", () => {
|
|
171
|
+
try {
|
|
172
|
+
var _obj$modifiedReq$toSt3;
|
|
173
|
+
obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer
|
|
174
|
+
|
|
175
|
+
obj.data = (_obj$modifiedReq$toSt3 = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt3.split(`--${boundary}`); // separating the boundary
|
|
176
|
+
obj.data.pop();
|
|
177
|
+
obj.data.shift();
|
|
178
|
+
|
|
179
|
+
//*****Defaults*****
|
|
180
|
+
//To*********extract content
|
|
181
|
+
new ExtractFileContent(obj, options, null, field).extraction();
|
|
182
|
+
|
|
183
|
+
//To*********SetFileDataToReqObj
|
|
184
|
+
new populateReqObj(obj).populate();
|
|
185
|
+
let writeBool = false;
|
|
186
|
+
let parseBool = false;
|
|
187
|
+
let checkCompletion = (writeComplete, parsecomplete) => {
|
|
188
|
+
if (writeComplete && parsecomplete) next();
|
|
189
|
+
};
|
|
190
|
+
EventHandlers.on("parseEnd", message => {
|
|
191
|
+
parseBool = true;
|
|
192
|
+
checkCompletion(writeBool, parseBool);
|
|
193
|
+
});
|
|
194
|
+
EventHandlers.on("writeEnd", message => {
|
|
195
|
+
writeBool = true;
|
|
196
|
+
checkCompletion(writeBool, parseBool);
|
|
197
|
+
});
|
|
198
|
+
new writeFileContent(req, obj, options, "single", "disk").writeContent();
|
|
199
|
+
if (options.attachFileToReqBody && options.attachFileToReqBody == true) new setFileNameToBody(obj).setFileNames(req);
|
|
200
|
+
new setContentToBody(obj).setBody(req);
|
|
201
|
+
} catch (err) {
|
|
202
|
+
next(err);
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
req.on("error", () => {
|
|
206
|
+
next(new FormfluxError("Error in recieving request", 500));
|
|
207
|
+
});
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
static memoryStorage(options) {
|
|
213
|
+
return {
|
|
214
|
+
any() {
|
|
215
|
+
return async function (req, res, next) {
|
|
216
|
+
var _req$headers$content4;
|
|
217
|
+
let obj = {
|
|
218
|
+
"originalReq": "",
|
|
219
|
+
"modifiedReq": Buffer.from(""),
|
|
220
|
+
"data": [],
|
|
221
|
+
"content": [],
|
|
222
|
+
"metaData": [],
|
|
223
|
+
"mimeType": [],
|
|
224
|
+
"fieldNameBody": [],
|
|
225
|
+
"fileName": [],
|
|
226
|
+
"modifiedFileName": [],
|
|
227
|
+
"contentBody": [],
|
|
228
|
+
"fieldNameFile": [],
|
|
229
|
+
"filePath": [],
|
|
230
|
+
"filesize": [],
|
|
231
|
+
"streams": []
|
|
232
|
+
};
|
|
233
|
+
let buff = [];
|
|
234
|
+
let reqType = req.headers["content-type"];
|
|
235
|
+
if (reqType && !reqType.includes("multipart/form-data")) throw new FormfluxError("Invalid Request Type.Expected multipart/form-data", 400);
|
|
236
|
+
let boundary = (_req$headers$content4 = req.headers["content-type"]) == null ? void 0 : _req$headers$content4.split("boundary=")[1];
|
|
237
|
+
req.on("data", chunk => {
|
|
238
|
+
buff.push(chunk);
|
|
239
|
+
});
|
|
240
|
+
req.on("end", () => {
|
|
241
|
+
try {
|
|
242
|
+
var _obj$modifiedReq$toSt4;
|
|
243
|
+
obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer
|
|
244
|
+
|
|
245
|
+
obj.data = (_obj$modifiedReq$toSt4 = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt4.split(`--${boundary}`); // separating the boundary
|
|
246
|
+
obj.data.pop();
|
|
247
|
+
obj.data.shift();
|
|
248
|
+
|
|
249
|
+
//*****Defaults*****
|
|
250
|
+
//To*********extract content
|
|
251
|
+
new ExtractFileContent(obj, options, null, null).extraction();
|
|
252
|
+
|
|
253
|
+
//To*********SetFileDataToReqObj
|
|
254
|
+
new populateReqObj(obj).populate();
|
|
255
|
+
let writeBool = false;
|
|
256
|
+
let parseBool = false;
|
|
257
|
+
let checkCompletion = (writeComplete, parsecomplete) => {
|
|
258
|
+
if (writeComplete && parsecomplete) next();
|
|
259
|
+
};
|
|
260
|
+
EventHandlers.on("parseEnd", message => {
|
|
261
|
+
parseBool = true;
|
|
262
|
+
checkCompletion(writeBool, parseBool);
|
|
263
|
+
});
|
|
264
|
+
EventHandlers.on("writeEnd", message => {
|
|
265
|
+
writeBool = true;
|
|
266
|
+
checkCompletion(writeBool, parseBool);
|
|
267
|
+
});
|
|
268
|
+
new writeFileContent(req, obj, options, "any", "memory").writeContent();
|
|
269
|
+
if (options.attachFileToReqBody && options.attachFileToReqBody == true) new setFileNameToBody(obj).setFileNames(req);
|
|
270
|
+
new setContentToBody(obj).setBody(req);
|
|
271
|
+
} catch (err) {
|
|
272
|
+
next(err);
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
req.on("error", () => {
|
|
276
|
+
next(new FormfluxError("Error in recieving request", 500));
|
|
277
|
+
});
|
|
278
|
+
};
|
|
279
|
+
},
|
|
280
|
+
fields(optionFields) {
|
|
281
|
+
return async function (req, res, next) {
|
|
282
|
+
var _req$headers$content5;
|
|
283
|
+
let obj = {
|
|
284
|
+
"originalReq": "",
|
|
285
|
+
"modifiedReq": Buffer.from(""),
|
|
286
|
+
"data": [],
|
|
287
|
+
"content": [],
|
|
288
|
+
"metaData": [],
|
|
289
|
+
"mimeType": [],
|
|
290
|
+
"fieldNameBody": [],
|
|
291
|
+
"fileName": [],
|
|
292
|
+
"modifiedFileName": [],
|
|
293
|
+
"contentBody": [],
|
|
294
|
+
"fieldNameFile": [],
|
|
295
|
+
"filePath": [],
|
|
296
|
+
"filesize": [],
|
|
297
|
+
"streams": []
|
|
298
|
+
};
|
|
299
|
+
let buff = [];
|
|
300
|
+
let reqType = req.headers["content-type"];
|
|
301
|
+
if (reqType && !reqType.includes("multipart/form-data")) throw new FormfluxError("Invalid Request Type.Expected multipart/form-data", 400);
|
|
302
|
+
let boundary = (_req$headers$content5 = req.headers["content-type"]) == null ? void 0 : _req$headers$content5.split("boundary=")[1];
|
|
303
|
+
req.on("data", chunk => {
|
|
304
|
+
buff.push(chunk);
|
|
305
|
+
});
|
|
306
|
+
req.on("end", () => {
|
|
307
|
+
try {
|
|
308
|
+
var _obj$modifiedReq$toSt5;
|
|
309
|
+
obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer
|
|
310
|
+
|
|
311
|
+
obj.data = (_obj$modifiedReq$toSt5 = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt5.split(`--${boundary}`); // separating the boundary
|
|
312
|
+
obj.data.pop();
|
|
313
|
+
obj.data.shift();
|
|
314
|
+
|
|
315
|
+
//*****Defaults*****
|
|
316
|
+
//To*********extract content
|
|
317
|
+
new ExtractFileContent(obj, options, optionFields, null).extraction();
|
|
318
|
+
|
|
319
|
+
//To*********SetFileDataToReqObj
|
|
320
|
+
new populateReqObj(obj).populate();
|
|
321
|
+
let writeBool = false;
|
|
322
|
+
let parseBool = false;
|
|
323
|
+
let checkCompletion = (writeComplete, parsecomplete) => {
|
|
324
|
+
if (writeComplete && parsecomplete) next();
|
|
325
|
+
};
|
|
326
|
+
EventHandlers.on("parseEnd", message => {
|
|
327
|
+
parseBool = true;
|
|
328
|
+
checkCompletion(writeBool, parseBool);
|
|
329
|
+
});
|
|
330
|
+
EventHandlers.on("writeEnd", message => {
|
|
331
|
+
writeBool = true;
|
|
332
|
+
checkCompletion(writeBool, parseBool);
|
|
333
|
+
});
|
|
334
|
+
new writeFileContent(req, obj, options, "fields", "memory").writeContent();
|
|
335
|
+
if (options.attachFileToReqBody && options.attachFileToReqBody == true) new setFileNameToBody(obj).setFileNames(req);
|
|
336
|
+
new setContentToBody(obj).setBody(req);
|
|
337
|
+
} catch (err) {
|
|
338
|
+
next(err);
|
|
339
|
+
}
|
|
340
|
+
});
|
|
341
|
+
req.on("error", () => {
|
|
342
|
+
next(new FormfluxError("Error in recieving request", 500));
|
|
343
|
+
});
|
|
344
|
+
};
|
|
345
|
+
},
|
|
346
|
+
single(field) {
|
|
347
|
+
return async function (req, res, next) {
|
|
348
|
+
var _req$headers$content6;
|
|
349
|
+
let obj = {
|
|
350
|
+
"originalReq": "",
|
|
351
|
+
"modifiedReq": Buffer.from(""),
|
|
352
|
+
"data": [],
|
|
353
|
+
"content": [],
|
|
354
|
+
"metaData": [],
|
|
355
|
+
"mimeType": [],
|
|
356
|
+
"fieldNameBody": [],
|
|
357
|
+
"fileName": [],
|
|
358
|
+
"modifiedFileName": [],
|
|
359
|
+
"contentBody": [],
|
|
360
|
+
"fieldNameFile": [],
|
|
361
|
+
"filePath": [],
|
|
362
|
+
"filesize": [],
|
|
363
|
+
"streams": []
|
|
364
|
+
};
|
|
365
|
+
let buff = [];
|
|
366
|
+
let reqType = req.headers["content-type"];
|
|
367
|
+
if (reqType && !reqType.includes("multipart/form-data")) throw new FormfluxError("Invalid Request Type.Expected multipart/form-data", 400);
|
|
368
|
+
let boundary = (_req$headers$content6 = req.headers["content-type"]) == null ? void 0 : _req$headers$content6.split("boundary=")[1];
|
|
369
|
+
req.on("data", chunk => {
|
|
370
|
+
buff.push(chunk);
|
|
371
|
+
});
|
|
372
|
+
req.on("end", () => {
|
|
373
|
+
try {
|
|
374
|
+
var _obj$modifiedReq$toSt6;
|
|
375
|
+
obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer
|
|
376
|
+
|
|
377
|
+
obj.data = (_obj$modifiedReq$toSt6 = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt6.split(`--${boundary}`); // separating the boundary
|
|
378
|
+
obj.data.pop();
|
|
379
|
+
obj.data.shift();
|
|
380
|
+
|
|
381
|
+
//*****Defaults*****
|
|
382
|
+
//To*********extract content
|
|
383
|
+
new ExtractFileContent(obj, options, null, field).extraction();
|
|
384
|
+
|
|
385
|
+
//To*********SetFileDataToReqObj
|
|
386
|
+
new populateReqObj(obj).populate();
|
|
387
|
+
let writeBool = false;
|
|
388
|
+
let parseBool = false;
|
|
389
|
+
let checkCompletion = (writeComplete, parsecomplete) => {
|
|
390
|
+
if (writeComplete && parsecomplete) next();
|
|
391
|
+
};
|
|
392
|
+
EventHandlers.on("parseEnd", message => {
|
|
393
|
+
parseBool = true;
|
|
394
|
+
checkCompletion(writeBool, parseBool);
|
|
395
|
+
});
|
|
396
|
+
EventHandlers.on("writeEnd", message => {
|
|
397
|
+
writeBool = true;
|
|
398
|
+
checkCompletion(writeBool, parseBool);
|
|
399
|
+
});
|
|
400
|
+
new writeFileContent(req, obj, options, "single", "memory").writeContent();
|
|
401
|
+
if (options.attachFileToReqBody && options.attachFileToReqBody == true) new setFileNameToBody(obj).setFileNames(req);
|
|
402
|
+
new setContentToBody(obj).setBody(req);
|
|
403
|
+
} catch (err) {
|
|
404
|
+
next(err);
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
req.on("error", () => {
|
|
408
|
+
next(new FormfluxError("Error in recieving request", 500));
|
|
409
|
+
});
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
bodyParser() {
|
|
415
|
+
return async function (req, res, next) {
|
|
416
|
+
var _req$headers$content7;
|
|
417
|
+
let obj = {
|
|
418
|
+
"originalReq": "",
|
|
419
|
+
"modifiedReq": Buffer.from(""),
|
|
420
|
+
"data": [],
|
|
421
|
+
"content": [],
|
|
422
|
+
"metaData": [],
|
|
423
|
+
"mimeType": [],
|
|
424
|
+
"fieldNameBody": [],
|
|
425
|
+
"fileName": [],
|
|
426
|
+
"modifiedFileName": [],
|
|
427
|
+
"contentBody": [],
|
|
428
|
+
"fieldNameFile": [],
|
|
429
|
+
"filePath": [],
|
|
430
|
+
"filesize": [],
|
|
431
|
+
"streams": []
|
|
432
|
+
};
|
|
433
|
+
let buff = [];
|
|
434
|
+
let reqType = req.headers["content-type"];
|
|
435
|
+
if (reqType && !reqType.includes("multipart/form-data")) throw new FormfluxError("Invalid Request Type.Expected multipart/form-data", 400);
|
|
436
|
+
let boundary = (_req$headers$content7 = req.headers["content-type"]) == null ? void 0 : _req$headers$content7.split("boundary=")[1];
|
|
437
|
+
req.on("data", chunk => {
|
|
438
|
+
buff.push(chunk);
|
|
439
|
+
});
|
|
440
|
+
req.on("end", () => {
|
|
441
|
+
try {
|
|
442
|
+
var _obj$modifiedReq$toSt7;
|
|
443
|
+
obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer
|
|
444
|
+
|
|
445
|
+
obj.data = (_obj$modifiedReq$toSt7 = obj.modifiedReq.toString("binary")) == null ? void 0 : _obj$modifiedReq$toSt7.split(`--${boundary}`); // separating the boundary
|
|
446
|
+
obj.data.pop();
|
|
447
|
+
obj.data.shift();
|
|
448
|
+
|
|
449
|
+
//*****Defaults*****
|
|
450
|
+
//To*********extract content
|
|
451
|
+
new ExtractFileContent(obj, null, null, null).extraction();
|
|
452
|
+
|
|
453
|
+
//To*********SetFileDataToReqObj
|
|
454
|
+
let writeBool = false;
|
|
455
|
+
let parseBool = false;
|
|
456
|
+
let checkCompletion = (writeComplete, parsecomplete) => {
|
|
457
|
+
if (writeComplete && parsecomplete) next();
|
|
458
|
+
};
|
|
459
|
+
EventHandlers.on("parseEnd", message => {
|
|
460
|
+
parseBool = true;
|
|
461
|
+
next();
|
|
462
|
+
});
|
|
463
|
+
new setContentToBody(obj).setBody(req);
|
|
464
|
+
} catch (err) {
|
|
465
|
+
next(err);
|
|
466
|
+
}
|
|
467
|
+
});
|
|
468
|
+
req.on("error", () => {
|
|
469
|
+
next(new FormfluxError("Error in recieving request", 500));
|
|
470
|
+
});
|
|
471
|
+
};
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
export default Formflux;
|
|
475
|
+
//# sourceMappingURL=FormFlux.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormFlux.js","names":["ExtractFileContent","writeFileContent","setContentToBody","setFileNameToBody","populateReqObj","EventHandlers","FormfluxError","Formflux","diskStorage","options","any","req","res","next","_req$headers$content","obj","Buffer","from","buff","reqType","headers","includes","boundary","split","on","chunk","push","_obj$modifiedReq$toSt","modifiedReq","concat","data","toString","pop","shift","extraction","populate","writeBool","parseBool","checkCompletion","writeComplete","parsecomplete","message","writeContent","attachFileToReqBody","setFileNames","setBody","err","fields","optionFields","_req$headers$content2","_obj$modifiedReq$toSt2","single","field","_req$headers$content3","_obj$modifiedReq$toSt3","memoryStorage","_req$headers$content4","_obj$modifiedReq$toSt4","_req$headers$content5","_obj$modifiedReq$toSt5","_req$headers$content6","_obj$modifiedReq$toSt6","bodyParser","_req$headers$content7","_obj$modifiedReq$toSt7"],"sources":["../../src/FormFlux.ts"],"sourcesContent":["import { NextFunction, Request, Response } from \"express\";\nimport { options, reqObj, optionFields, optionSingle } from \"./FormFlux.Types\";\nimport ExtractFileContent from \"./ExtractContent\";\nimport writeFileContent from \"./WriteFileContent\";\nimport setContentToBody from \"./SetBodyContentToReq\";\nimport setFileNameToBody from \"./setFileNameToBody\";\nimport populateReqObj from \"./setDatatoReqobj\";\nimport EventHandlers from \"./EventHandlers\";\nimport FormfluxError from \"./FormFluxError\";\n\nclass Formflux {\n\n static diskStorage(options: options) {\n return {\n any() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"any\", \"disk\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n\n }\n },\n fields(optionFields: optionFields) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, optionFields, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"fields\", \"disk\").writeContent();\n // new setFileContentToReq(obj).setFileNames(req);\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n \n } catch (err) {\n next(err)\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n\n single(field: string) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, field).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"single\", \"disk\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n }\n }\n\n static memoryStorage(options: optionSingle) {\n return {\n any() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"any\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n fields(optionFields: optionFields) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, optionFields, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"fields\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err)\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n single(field: string) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, field).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n new writeFileContent(req, obj, options, \"single\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n }\n }\n\n bodyParser(){\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, null, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n next();\n })\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n }\n \n}\n\nexport default Formflux;"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
class FormfluxError extends Error {
|
|
2
|
+
constructor(message, statusCode = 500) {
|
|
3
|
+
super(message);
|
|
4
|
+
this.statusCode = void 0;
|
|
5
|
+
this.name = "FormfluxError";
|
|
6
|
+
this.statusCode = statusCode;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export default FormfluxError;
|
|
10
|
+
//# sourceMappingURL=FormFluxError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormFluxError.js","names":["FormfluxError","Error","constructor","message","statusCode","name"],"sources":["../../src/FormFluxError.ts"],"sourcesContent":["class FormfluxError extends Error {\n private statusCode: number;\n constructor(message: string,statusCode: number=500) {\n super(message);\n this.name = \"FormfluxError\";\n this.statusCode=statusCode;\n }\n}\n\n\nexport default FormfluxError;\n\n\n\n"],"mappings":"AAAA,MAAMA,aAAa,SAASC,KAAK,CAAC;EAE9BC,WAAWA,CAACC,OAAe,EAACC,UAAkB,GAAC,GAAG,EAAE;IAChD,KAAK,CAACD,OAAO,CAAC;IAAC,KAFXC,UAAU;IAGd,IAAI,CAACC,IAAI,GAAG,eAAe;IAC3B,IAAI,CAACD,UAAU,GAACA,UAAU;EAC9B;AACJ;AAGA,eAAeJ,aAAa","ignoreList":[]}
|