UNPKG

json2php

Version:
29 lines (28 loc) 1.07 kB
const d = ["[object Array]", "[object Object]"], u = (n = {}) => { const r = n.linebreak ?? "", y = n.indent ?? "", a = n.stripSpaces ?? !1, i = n.shortArraySyntax ?? !1, f = i ? "[" : "array(", p = i ? "]" : ")", $ = a ? "=>" : " => "; return function c(t, o = "") { switch (typeof t) { case "undefined": return "null"; case "bigint": case "number": case "boolean": return t.toString(); case "string": return `'${t.replace(/\\/g, "\\\\").replace(/\'/g, "\\'")}'`; case "object": if (t === null) return "null"; const l = Object.prototype.toString.call(t); if (l === "[object Date]") return t.toISOString(); if (!d.includes(l)) return "null"; const e = o + y, m = (Array.isArray(t) ? t.map((s) => c(s, e)) : Object.entries(t).map(([s, S]) => `${c(s, e)}${$}${c(S, e)}`)).join(`,${r === "" && !a ? " " : r + e}`); return `${f}${r + e}${m}${r + o}${p}`; default: return "null"; } }; }, g = u(); g.make = u; export { g as default };