UNPKG

876 BJavaScriptView Raw
1const crypto = require('crypto');
2const {debugLog} = require('./utilities');
3
4/**
5 * memHandler - In memory upload handler
6 * @param {Object} options
7 * @param {String} fieldname
8 * @param {String} filename
9 * @returns {Object}
10 */
11module.exports = (options, fieldname, filename) => {
12 let buffers = [];
13 let fileSize = 0; // eslint-disable-line
14 let hash = crypto.createHash('md5');
15
16 const getBuffer = () => Buffer.concat(buffers, fileSize);
17 const emptyFunc = () => '';
18
19 return {
20 dataHandler: (data) => {
21 buffers.push(data);
22 hash.update(data);
23 fileSize += data.length;
24 debugLog(options, `Uploading ${fieldname} -> ${filename}, bytes: ${fileSize}`);
25 },
26 getBuffer: getBuffer,
27 getFilePath: emptyFunc,
28 getFileSize: () => fileSize,
29 getHash: () => hash.digest('hex'),
30 complete: getBuffer,
31 cleanup: emptyFunc
32 };
33};