ghost-portal/packages/react-api/src/util/isEqual.ts
Jaco Greeff c60ba8708a
Bumps w/ eslint (#2802)
* Bumps w/ eslint

* Additional

* Additional

* Additional

* Additional

* Remove style props

* Additional

* Additional

* Additional

* Additional (< 100)

* eslint passes, tsc next

* tsc fixes

* Update deps

* Update i18n
2020-05-24 19:41:14 +02:00

31 lines
764 B
TypeScript

// Copyright 2017-2020 @polkadot/react-api authors & contributors
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
function flatten (key: string | null, value?: unknown): unknown {
if (!value) {
return value;
}
if ((value as Record<string, unknown>).$$typeof) {
return '';
}
if (Array.isArray(value)) {
return value.map((item) => flatten(null, item));
}
return value;
}
export default function isEqual <T> (a?: T, b?: T, debug = false): boolean {
const jsonA = JSON.stringify({ test: a }, flatten);
const jsonB = JSON.stringify({ test: b }, flatten);
if (debug) {
console.log('jsonA', jsonA, 'jsonB', jsonB);
}
return jsonA === jsonB;
}