UNPKG

json-joy

Version:

Collection of libraries for building collaborative editing apps.

37 lines (36 loc) 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.stringify = void 0; /** * @todo Rename to `toLine`? */ const stringify = (value, spacing = ' ') => { switch (value) { case null: return '!n'; case undefined: return '!u'; case true: return '!t'; case false: return '!f'; } if (Array.isArray(value)) return `[${spacing}${value.map((v) => (0, exports.stringify)(v, spacing)).join(',' + spacing)}${spacing}]`; if (value instanceof Uint8Array) return `${value}`; switch (typeof value) { case 'number': return `${value}`; case 'string': return JSON.stringify(value); case 'object': { const keys = Object.keys(value); return `{${spacing}${keys .map((k) => `${k}${spacing}=${spacing}${(0, exports.stringify)(value[k], spacing)}`) .join(',' + spacing)}${spacing}}`; } } return '?'; }; exports.stringify = stringify;