tiny-types
Version:
A tiny library that brings Tiny Types to JavaScript and TypeScript
28 lines • 883 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringify = stringify;
const significantFields_1 = require("./significantFields");
/**
* @access private
*/
function stringify(v) {
if (Array.isArray(v)) {
return `${v.constructor.name}(${v.map(i => stringify(i)).join(', ')})`;
}
if (v instanceof Date) {
return v.toISOString();
}
if (isObject(v)) {
const fields = (0, significantFields_1.significantFieldsOf)(v)
.map(field => ({ field, value: stringify(v[field]) }))
.reduce((acc, current) => {
return acc.concat(`${current.field}=${current.value}`);
}, []);
return `${v.constructor.name}(${fields.join(', ')})`;
}
return String(v);
}
function isObject(value) {
return new Object(value) === value;
}
//# sourceMappingURL=stringify.js.map