dockerized_openAger/nodered/rootfs/data/node_modules/mailparser/lib/stream-hash.js

29 lines
683 B
JavaScript
Raw Permalink Normal View History

2020-10-17 16:42:50 +00:00
'use strict';
const crypto = require('crypto');
const Transform = require('stream').Transform;
class StreamHash extends Transform {
constructor(attachment, algo) {
super();
this.attachment = attachment;
this.algo = (algo || 'md5').toLowerCase();
this.hash = crypto.createHash(algo);
this.byteCount = 0;
}
_transform(chunk, encoding, done) {
this.hash.update(chunk);
this.byteCount += chunk.length;
done(null, chunk);
}
_flush(done) {
this.attachment.checksum = this.hash.digest('hex');
this.attachment.size = this.byteCount;
done();
}
}
module.exports = StreamHash;