deep-equality-data-structures
Version:
Javascript data structures (e.g., Map, Set) that support deep object equality
26 lines (25 loc) • 819 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringify = stringify;
exports.chain = chain;
/**
* Format an unknown value to a string for display
*/
function stringify(value) {
if (value !== null && typeof value === 'object') {
// For objects, defer an overridden toString, otherwise use JSON.stringify
return 'toString' in value && ![Object.prototype.toString, Array.prototype.toString].includes(value.toString)
? value.toString()
: JSON.stringify(value);
}
else {
return String(value);
}
}
function chain(functions) {
const [head, ...tail] = functions;
return (...args) => {
return tail.reduce((acc, fn) => fn(acc), head(...args));
};
}
/* eslint-enable @typescript-eslint/no-explicit-any */