26 lines
819 B
JavaScript
26 lines
819 B
JavaScript
"use strict";
|
|
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 */
|