You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
parttimejob/node_modules/javascript-stringify/dist/stringify.js

37 lines
1.1 KiB

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.toString = void 0;
const quote_1 = require("./quote");
const object_1 = require("./object");
const function_1 = require("./function");
/**
* Stringify primitive values.
*/
const PRIMITIVE_TYPES = {
string: quote_1.quoteString,
number: (value) => (Object.is(value, -0) ? "-0" : String(value)),
boolean: String,
symbol: (value, space, next) => {
const key = Symbol.keyFor(value);
if (key !== undefined)
return `Symbol.for(${next(key)})`;
// ES2018 `Symbol.description`.
return `Symbol(${next(value.description)})`;
},
bigint: (value, space, next) => {
return `BigInt(${next(String(value))})`;
},
undefined: String,
object: object_1.objectToString,
function: function_1.functionToString,
};
/**
* Stringify a value recursively.
*/
const toString = (value, space, next, key) => {
if (value === null)
return "null";
return PRIMITIVE_TYPES[typeof value](value, space, next, key);
};
exports.toString = toString;
//# sourceMappingURL=stringify.js.map