38 lines
950 B
JavaScript
38 lines
950 B
JavaScript
'use strict';
|
|
|
|
const fileFactory = require('./fileFactory');
|
|
const processMultipart = require('./processMultipart');
|
|
const isEligibleRequest = require('./isEligibleRequest');
|
|
const processNested = require('./processNested');
|
|
|
|
const fileUploadOptionsDefaults = {
|
|
safeFileNames: false,
|
|
preserveExtension: false,
|
|
abortOnLimit: false,
|
|
createParentPath: false,
|
|
parseNested: false,
|
|
useTempFiles: false,
|
|
tempFileDir: '/tmp'
|
|
};
|
|
|
|
/**
|
|
* Expose the file upload middleware
|
|
*/
|
|
module.exports = function(fileUploadOptions) {
|
|
fileUploadOptions = Object.assign({}, fileUploadOptionsDefaults, fileUploadOptions || {});
|
|
|
|
return function(req, res, next) {
|
|
if (!isEligibleRequest(req)) {
|
|
return next();
|
|
}
|
|
|
|
processMultipart(fileUploadOptions, req, res, next);
|
|
};
|
|
};
|
|
|
|
/**
|
|
* Quietly expose fileFactory and processNested; useful for testing
|
|
*/
|
|
module.exports.fileFactory = fileFactory;
|
|
module.exports.processNested = processNested;
|