mirror of
https://github.com/fooflington/selfdefined.git
synced 2025-06-10 21:01:41 +00:00
update
This commit is contained in:
84
node_modules/javascript-stringify/dist/object.js
generated
vendored
Normal file
84
node_modules/javascript-stringify/dist/object.js
generated
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const quote_1 = require("./quote");
|
||||
const function_1 = require("./function");
|
||||
const array_1 = require("./array");
|
||||
/**
|
||||
* Transform an object into a string.
|
||||
*/
|
||||
exports.objectToString = (value, space, next, key) => {
|
||||
if (typeof Buffer === "function" && Buffer.isBuffer(value)) {
|
||||
return `new Buffer(${next(value.toString())})`;
|
||||
}
|
||||
// Use the internal object string to select stringify method.
|
||||
const toString = OBJECT_TYPES[Object.prototype.toString.call(value)];
|
||||
return toString ? toString(value, space, next, key) : undefined;
|
||||
};
|
||||
/**
|
||||
* Stringify an object of keys and values.
|
||||
*/
|
||||
const rawObjectToString = (obj, indent, next) => {
|
||||
const eol = indent ? "\n" : "";
|
||||
const space = indent ? " " : "";
|
||||
// Iterate over object keys and concat string together.
|
||||
const values = Object.keys(obj)
|
||||
.reduce(function (values, key) {
|
||||
const fn = obj[key];
|
||||
const result = next(fn, key);
|
||||
// Omit `undefined` object entries.
|
||||
if (result === undefined)
|
||||
return values;
|
||||
// String format the value data.
|
||||
const value = result.split("\n").join(`\n${indent}`);
|
||||
// Skip `key` prefix for function parser.
|
||||
if (function_1.USED_METHOD_KEY.has(fn)) {
|
||||
values.push(`${indent}${value}`);
|
||||
return values;
|
||||
}
|
||||
values.push(`${indent}${quote_1.quoteKey(key, next)}:${space}${value}`);
|
||||
return values;
|
||||
}, [])
|
||||
.join(`,${eol}`);
|
||||
// Avoid new lines in an empty object.
|
||||
if (values === "")
|
||||
return "{}";
|
||||
return `{${eol}${values}${eol}}`;
|
||||
};
|
||||
/**
|
||||
* Stringify global variable access.
|
||||
*/
|
||||
const globalToString = (value, space, next) => {
|
||||
return `Function(${next("return this")})()`;
|
||||
};
|
||||
/**
|
||||
* Convert JavaScript objects into strings.
|
||||
*/
|
||||
const OBJECT_TYPES = {
|
||||
"[object Array]": array_1.arrayToString,
|
||||
"[object Object]": rawObjectToString,
|
||||
"[object Error]": (error, space, next) => {
|
||||
return `new Error(${next(error.message)})`;
|
||||
},
|
||||
"[object Date]": (date) => {
|
||||
return `new Date(${date.getTime()})`;
|
||||
},
|
||||
"[object String]": (str, space, next) => {
|
||||
return `new String(${next(str.toString())})`;
|
||||
},
|
||||
"[object Number]": (num) => {
|
||||
return `new Number(${num})`;
|
||||
},
|
||||
"[object Boolean]": (bool) => {
|
||||
return `new Boolean(${bool})`;
|
||||
},
|
||||
"[object Set]": (set, space, next) => {
|
||||
return `new Set(${next(Array.from(set))})`;
|
||||
},
|
||||
"[object Map]": (map, space, next) => {
|
||||
return `new Map(${next(Array.from(map))})`;
|
||||
},
|
||||
"[object RegExp]": String,
|
||||
"[object global]": globalToString,
|
||||
"[object Window]": globalToString
|
||||
};
|
||||
//# sourceMappingURL=object.js.map
|
Reference in New Issue
Block a user