UNPKG

980 BJavaScriptView Raw
1"use strict";
2
3const crypto = require('crypto');
4
5function objectHash(object) {
6 let hash = crypto.createHash('md5');
7 var _iteratorNormalCompletion = true;
8 var _didIteratorError = false;
9 var _iteratorError = undefined;
10
11 try {
12 for (var _iterator = Object.keys(object).sort()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
13 let key = _step.value;
14 let val = object[key];
15
16 if (typeof val === 'object' && val) {
17 hash.update(key + objectHash(val));
18 } else {
19 hash.update(key + val);
20 }
21 }
22 } catch (err) {
23 _didIteratorError = true;
24 _iteratorError = err;
25 } finally {
26 try {
27 if (!_iteratorNormalCompletion && _iterator.return != null) {
28 _iterator.return();
29 }
30 } finally {
31 if (_didIteratorError) {
32 throw _iteratorError;
33 }
34 }
35 }
36
37 return hash.digest('hex');
38}
39
40module.exports = objectHash;
\No newline at end of file