UNPKG

438 BJavaScriptView Raw
1// @flow strict-local
2
3import crypto from 'crypto';
4
5// $FlowFixMe
6type Hashable = Object;
7
8export default function objectHash(object: Hashable): string {
9 let hash = crypto.createHash('md5');
10 for (let key of Object.keys(object).sort()) {
11 let val = object[key];
12 if (typeof val === 'object' && val) {
13 hash.update(key + objectHash(val));
14 } else {
15 hash.update(key + val);
16 }
17 }
18
19 return hash.digest('hex');
20}