1 | 'use strict';
|
2 |
|
3 | const fileFactory = require('./fileFactory');
|
4 | const processNested = require('./processNested');
|
5 | const processMultipart = require('./processMultipart');
|
6 | const isEligibleRequest = require('./isEligibleRequest');
|
7 | const { buildOptions, debugLog } = require('./utilities');
|
8 |
|
9 | const DEFAULT_OPTIONS = {
|
10 | debug: false,
|
11 | uploadTimeout: 60000,
|
12 | fileHandler: false,
|
13 | uriDecodeFileNames: false,
|
14 | safeFileNames: false,
|
15 | preserveExtension: false,
|
16 | abortOnLimit: false,
|
17 | responseOnLimit: 'File size limit has been reached',
|
18 | limitHandler: false,
|
19 | createParentPath: false,
|
20 | parseNested: false,
|
21 | useTempFiles: false,
|
22 | tempFileDir: '/tmp'
|
23 | };
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 | module.exports = (options) => {
|
31 | const fileUploadOptions = buildOptions(DEFAULT_OPTIONS, options);
|
32 |
|
33 | return (req, res, next) => {
|
34 | if (!isEligibleRequest(req)) {
|
35 | debugLog(fileUploadOptions, 'Request is not eligible for file upload!');
|
36 | return next();
|
37 | }
|
38 | processMultipart(fileUploadOptions, req, res, next);
|
39 | };
|
40 | };
|
41 |
|
42 |
|
43 |
|
44 |
|
45 | module.exports.fileFactory = fileFactory;
|
46 | module.exports.processNested = processNested;
|