1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.md5FromString = md5FromString;
|
7 | exports.md5FromReadableStream = md5FromReadableStream;
|
8 | exports.md5FromObject = md5FromObject;
|
9 | exports.md5FromFilePath = md5FromFilePath;
|
10 |
|
11 | var _crypto = _interopRequireDefault(require("crypto"));
|
12 |
|
13 | var _collection = require("./collection");
|
14 |
|
15 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
16 |
|
17 | function md5FromString(string, encoding = 'hex') {
|
18 | return _crypto.default.createHash('md5').update(string).digest(encoding);
|
19 | }
|
20 |
|
21 | function md5FromReadableStream(stream) {
|
22 | return new Promise((resolve, reject) => {
|
23 | stream.on('error', err => {
|
24 | reject(err);
|
25 | });
|
26 | stream.pipe(_crypto.default.createHash('md5').setEncoding('hex')).on('finish', function () {
|
27 | resolve(this.read());
|
28 | }).on('error', err => {
|
29 | reject(err);
|
30 | });
|
31 | });
|
32 | }
|
33 |
|
34 | function md5FromObject(obj, encoding = 'hex') {
|
35 | return md5FromString(JSON.stringify((0, _collection.objectSortedEntriesDeep)(obj)), encoding);
|
36 | }
|
37 |
|
38 | function md5FromFilePath(fs, filePath) {
|
39 | return md5FromReadableStream(fs.createReadStream(filePath));
|
40 | } |
\ | No newline at end of file |