1 | const crypto = require('crypto');
|
2 | const {debugLog} = require('./utilities');
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 | module.exports = (options, fieldname, filename) => {
|
12 | let buffers = [];
|
13 | let fileSize = 0;
|
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 | };
|