@lopatnov/javascripttostring 1.7.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +195 -102
- package/dist/javascripttostring.esm.mjs +543 -0
- package/dist/javascripttostring.esm.mjs.map +1 -0
- package/dist/javascripttostring.umd.js +1 -435
- package/dist/javascripttostring.umd.js.map +1 -1
- package/dist/lib/javascripttostring.cjs +545 -0
- package/dist/lib/javascripttostring.cjs.map +1 -0
- package/dist/types/javascripttostring.d.ts +23 -15
- package/package.json +87 -57
- package/CHANGELOG.md +0 -3
- package/dist/javascripttostring.es5.js +0 -428
- package/dist/javascripttostring.es5.js.map +0 -1
- package/dist/lib/javascripttostring.js +0 -385
- package/dist/lib/javascripttostring.js.map +0 -1
|
@@ -0,0 +1,543 @@
|
|
|
1
|
+
const types = {};
|
|
2
|
+
const typesToString = Object.prototype.toString;
|
|
3
|
+
const builtInList = [
|
|
4
|
+
"Boolean",
|
|
5
|
+
"Number",
|
|
6
|
+
"String",
|
|
7
|
+
"Array",
|
|
8
|
+
"Date",
|
|
9
|
+
"RegExp",
|
|
10
|
+
"Object",
|
|
11
|
+
"Error",
|
|
12
|
+
"Promise",
|
|
13
|
+
"DataView",
|
|
14
|
+
"WeakRef",
|
|
15
|
+
"FinalizationRegistry"
|
|
16
|
+
];
|
|
17
|
+
const functions = ["Function", "AsyncFunction"];
|
|
18
|
+
const generators = ["Generator", "AsyncGenerator"];
|
|
19
|
+
const generatorFunctions = ["GeneratorFunction", "AsyncGeneratorFunction"];
|
|
20
|
+
const arrayBuffers = ["ArrayBuffer", "SharedArrayBuffer"];
|
|
21
|
+
const maps = ["Map", "WeakMap"];
|
|
22
|
+
const sets = ["Set", "WeakSet"];
|
|
23
|
+
const typedArrays = [
|
|
24
|
+
"Int8Array",
|
|
25
|
+
"Uint8Array",
|
|
26
|
+
"Uint8ClampedArray",
|
|
27
|
+
"Int16Array",
|
|
28
|
+
"Uint16Array",
|
|
29
|
+
"Int32Array",
|
|
30
|
+
"Uint32Array",
|
|
31
|
+
"Float32Array",
|
|
32
|
+
"Float64Array",
|
|
33
|
+
"BigInt64Array",
|
|
34
|
+
"BigUint64Array"
|
|
35
|
+
];
|
|
36
|
+
builtInList.forEach(function (name) {
|
|
37
|
+
types["[object " + name + "]"] = name.toLowerCase();
|
|
38
|
+
});
|
|
39
|
+
functions.forEach(function (name) {
|
|
40
|
+
types["[object " + name + "]"] = "function";
|
|
41
|
+
});
|
|
42
|
+
generators.forEach(function (name) {
|
|
43
|
+
types["[object " + name + "]"] = "generator";
|
|
44
|
+
});
|
|
45
|
+
generatorFunctions.forEach(function (name) {
|
|
46
|
+
types["[object " + name + "]"] = "generatorfunction";
|
|
47
|
+
});
|
|
48
|
+
arrayBuffers.forEach(function (name) {
|
|
49
|
+
types["[object " + name + "]"] = "arraybuffer";
|
|
50
|
+
});
|
|
51
|
+
maps.forEach(function (name) {
|
|
52
|
+
types["[object " + name + "]"] = "map";
|
|
53
|
+
});
|
|
54
|
+
sets.forEach(function (name) {
|
|
55
|
+
types["[object " + name + "]"] = "set";
|
|
56
|
+
});
|
|
57
|
+
typedArrays.forEach(function (name) {
|
|
58
|
+
types["[object " + name + "]"] = "typedarray";
|
|
59
|
+
});
|
|
60
|
+
function getInternalType(obj) {
|
|
61
|
+
return obj == null
|
|
62
|
+
? obj + ""
|
|
63
|
+
: typeof obj === "object" || typeof obj === "function"
|
|
64
|
+
? types[typesToString.call(obj)] || "object"
|
|
65
|
+
: typeof obj;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
var refs = [];
|
|
69
|
+
var crossRefs = [];
|
|
70
|
+
var counter = 0;
|
|
71
|
+
const identifierRegex = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/;
|
|
72
|
+
function propertyAccessor(name) {
|
|
73
|
+
if (identifierRegex.test(name)) {
|
|
74
|
+
return `.${name}`;
|
|
75
|
+
}
|
|
76
|
+
if (/^\d+$/.test(name)) {
|
|
77
|
+
return `[${name}]`;
|
|
78
|
+
}
|
|
79
|
+
const escaped = name.replace(/\\/g, "\\\\").replace(/'/gi, "\\'");
|
|
80
|
+
return `['${escaped}']`;
|
|
81
|
+
}
|
|
82
|
+
function fillNativeFunctions(ext, obj, objName, fromPrototype = true) {
|
|
83
|
+
const arrNames = Object.getOwnPropertyNames(fromPrototype ? obj.prototype : obj);
|
|
84
|
+
const protoPath = fromPrototype ? ".prototype." : ".";
|
|
85
|
+
for (const name of arrNames) {
|
|
86
|
+
if (["caller", "callee", "arguments"].indexOf(name) < 0) {
|
|
87
|
+
ext[`${objName}${protoPath}${name}`] = fromPrototype ? obj.prototype[name] : obj[name];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const nativeFunctions = (() => {
|
|
92
|
+
const functions = {};
|
|
93
|
+
fillNativeFunctions(functions, Array, "Array", false);
|
|
94
|
+
fillNativeFunctions(functions, Array, "Array");
|
|
95
|
+
fillNativeFunctions(functions, JSON, "JSON", false);
|
|
96
|
+
fillNativeFunctions(functions, Object, "Object", false);
|
|
97
|
+
fillNativeFunctions(functions, Object, "Object");
|
|
98
|
+
fillNativeFunctions(functions, Function, "Function", false);
|
|
99
|
+
fillNativeFunctions(functions, Function, "Function");
|
|
100
|
+
fillNativeFunctions(functions, Date, "Date", false);
|
|
101
|
+
fillNativeFunctions(functions, String, "String");
|
|
102
|
+
functions.Function = Function;
|
|
103
|
+
return functions;
|
|
104
|
+
})();
|
|
105
|
+
function numberToString(value) {
|
|
106
|
+
if (Number.isNaN(value)) {
|
|
107
|
+
return "Number.NaN";
|
|
108
|
+
}
|
|
109
|
+
if (Object.is(value, -0)) {
|
|
110
|
+
return "-0";
|
|
111
|
+
}
|
|
112
|
+
switch (value) {
|
|
113
|
+
case Number.POSITIVE_INFINITY:
|
|
114
|
+
return "Number.POSITIVE_INFINITY";
|
|
115
|
+
case Number.NEGATIVE_INFINITY:
|
|
116
|
+
return "Number.NEGATIVE_INFINITY";
|
|
117
|
+
case Number.EPSILON:
|
|
118
|
+
return "Number.EPSILON";
|
|
119
|
+
case Number.MAX_SAFE_INTEGER:
|
|
120
|
+
return "Number.MAX_SAFE_INTEGER";
|
|
121
|
+
case Number.MIN_SAFE_INTEGER:
|
|
122
|
+
return "Number.MIN_SAFE_INTEGER";
|
|
123
|
+
case Number.MAX_VALUE:
|
|
124
|
+
return "Number.MAX_VALUE";
|
|
125
|
+
case Number.MIN_VALUE:
|
|
126
|
+
return "Number.MIN_VALUE";
|
|
127
|
+
case Math.PI:
|
|
128
|
+
return "Math.PI";
|
|
129
|
+
case Math.E:
|
|
130
|
+
return "Math.E";
|
|
131
|
+
case Math.LN10:
|
|
132
|
+
return "Math.LN10";
|
|
133
|
+
case Math.LN2:
|
|
134
|
+
return "Math.LN2";
|
|
135
|
+
case Math.LOG10E:
|
|
136
|
+
return "Math.LOG10E";
|
|
137
|
+
case Math.LOG2E:
|
|
138
|
+
return "Math.LOG2E";
|
|
139
|
+
case Math.SQRT1_2:
|
|
140
|
+
return "Math.SQRT1_2";
|
|
141
|
+
case Math.SQRT2:
|
|
142
|
+
return "Math.SQRT2";
|
|
143
|
+
default:
|
|
144
|
+
return String(value);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
function symbolToString(value) {
|
|
148
|
+
switch (value) {
|
|
149
|
+
case Symbol.asyncIterator:
|
|
150
|
+
case Symbol.hasInstance:
|
|
151
|
+
case Symbol.isConcatSpreadable:
|
|
152
|
+
case Symbol.iterator:
|
|
153
|
+
case Symbol.match:
|
|
154
|
+
case Symbol.replace:
|
|
155
|
+
case Symbol.search:
|
|
156
|
+
case Symbol.species:
|
|
157
|
+
case Symbol.split:
|
|
158
|
+
case Symbol.toPrimitive:
|
|
159
|
+
case Symbol.toStringTag:
|
|
160
|
+
case Symbol.unscopables:
|
|
161
|
+
return value.description;
|
|
162
|
+
case Symbol.prototype:
|
|
163
|
+
return "Symbol.prototype";
|
|
164
|
+
default:
|
|
165
|
+
const registryKey = Symbol.keyFor(value);
|
|
166
|
+
if (registryKey !== undefined) {
|
|
167
|
+
return `Symbol.for(${JSON.stringify(registryKey)})`;
|
|
168
|
+
}
|
|
169
|
+
const description = value.description !== undefined ? JSON.stringify(value.description) : "";
|
|
170
|
+
return `Symbol(${description})`;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function dateToString(value) {
|
|
174
|
+
if (isNaN(value.getTime())) {
|
|
175
|
+
return "new Date(NaN)";
|
|
176
|
+
}
|
|
177
|
+
return `new Date("${value.toISOString()}")`;
|
|
178
|
+
}
|
|
179
|
+
function regexpToString(value) {
|
|
180
|
+
const str = String(value);
|
|
181
|
+
if (value.lastIndex !== 0) {
|
|
182
|
+
return `(function(){ var r = ${str}; r.lastIndex = ${value.lastIndex}; return r; }())`;
|
|
183
|
+
}
|
|
184
|
+
return str;
|
|
185
|
+
}
|
|
186
|
+
function errorToString(value) {
|
|
187
|
+
var _a;
|
|
188
|
+
const message = JSON.stringify(value.message);
|
|
189
|
+
const errorClass = ((_a = value.constructor) === null || _a === void 0 ? void 0 : _a.name) || "Error";
|
|
190
|
+
const knownErrors = ["Error", "TypeError", "RangeError", "ReferenceError", "SyntaxError", "URIError", "EvalError"];
|
|
191
|
+
if (knownErrors.includes(errorClass)) {
|
|
192
|
+
return `new ${errorClass}(${message})`;
|
|
193
|
+
}
|
|
194
|
+
return `new Error(${message})`;
|
|
195
|
+
}
|
|
196
|
+
function arrayToString(value, options, history) {
|
|
197
|
+
if (value.length === 0)
|
|
198
|
+
return "[]";
|
|
199
|
+
const parts = [];
|
|
200
|
+
for (let i = 0; i < value.length; i++) {
|
|
201
|
+
if (!(i in value)) {
|
|
202
|
+
parts.push("");
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
const key = i.toString();
|
|
206
|
+
history.references.push(key);
|
|
207
|
+
history.currentPath.push(key);
|
|
208
|
+
parts.push(stringifyRef(value[i], options, history));
|
|
209
|
+
history.currentPath.pop();
|
|
210
|
+
history.references.pop();
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return attachActions(getLocalRefs(value), `[${parts.join(", ")}]`);
|
|
214
|
+
}
|
|
215
|
+
function getLocalRefs(value) {
|
|
216
|
+
return refs.filter((x) => x.source === value);
|
|
217
|
+
}
|
|
218
|
+
function attachActions(localRefs, result) {
|
|
219
|
+
if (localRefs.length > 0) {
|
|
220
|
+
counter = (counter + 1) % Number.MAX_SAFE_INTEGER;
|
|
221
|
+
const localName = `___ref${counter}`;
|
|
222
|
+
const actions = localRefs.reduce((x1, x2) => {
|
|
223
|
+
const action = converToAction(localName, x2);
|
|
224
|
+
refs.splice(refs.indexOf(x2), 1);
|
|
225
|
+
return x1 + action;
|
|
226
|
+
}, "");
|
|
227
|
+
return `(function(){ var ${localName} = ${result}; ${actions} return ${localName}; }())`;
|
|
228
|
+
}
|
|
229
|
+
return result;
|
|
230
|
+
}
|
|
231
|
+
function converToAction(localName, r) {
|
|
232
|
+
const destIndex = r.historyRef.indexOf(r.source);
|
|
233
|
+
if (destIndex < 0) {
|
|
234
|
+
return "";
|
|
235
|
+
}
|
|
236
|
+
const dest = r.historyRef.slice(destIndex);
|
|
237
|
+
let sourceObj;
|
|
238
|
+
let path = "";
|
|
239
|
+
for (let i = 0; i < dest.length; i++) {
|
|
240
|
+
const destObj = dest[i];
|
|
241
|
+
if (destObj === r.source) {
|
|
242
|
+
path = localName;
|
|
243
|
+
sourceObj = r.source;
|
|
244
|
+
}
|
|
245
|
+
else if (typeof destObj === "string") {
|
|
246
|
+
path += propertyAccessor(destObj);
|
|
247
|
+
sourceObj = sourceObj[destObj];
|
|
248
|
+
}
|
|
249
|
+
else if (destObj !== sourceObj) {
|
|
250
|
+
return "";
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return `${path} = ${localName}; `;
|
|
254
|
+
}
|
|
255
|
+
function typedArrayToString(value, options, history) {
|
|
256
|
+
const arr = Array.from(value), arrString = arrayToString(arr, options, history), constructorName = value.constructor.name;
|
|
257
|
+
return `new ${constructorName}(${arrString})`;
|
|
258
|
+
}
|
|
259
|
+
function setToString(value, options, history) {
|
|
260
|
+
const setValues = [];
|
|
261
|
+
value.forEach((_, value2) => {
|
|
262
|
+
setValues.push(stringifyRef(value2, options, history));
|
|
263
|
+
});
|
|
264
|
+
if (setValues.length === 0)
|
|
265
|
+
return "new Set()";
|
|
266
|
+
return `new Set([${setValues.join(", ")}])`;
|
|
267
|
+
}
|
|
268
|
+
function mapToString(value, options, history) {
|
|
269
|
+
const mapValues = [];
|
|
270
|
+
value.forEach((indexValue, key) => {
|
|
271
|
+
mapValues.push(`[${stringifyRef(key, options, history)}, ${stringifyRef(indexValue, options, history)}]`);
|
|
272
|
+
});
|
|
273
|
+
if (mapValues.length === 0)
|
|
274
|
+
return "new Map()";
|
|
275
|
+
return `new Map([${mapValues.join(", ")}])`;
|
|
276
|
+
}
|
|
277
|
+
function objectToString(value, options, history) {
|
|
278
|
+
const objectValues = [];
|
|
279
|
+
for (let propertyName in value) {
|
|
280
|
+
if (Object.prototype.hasOwnProperty.call(value, propertyName)) {
|
|
281
|
+
history.references.push(propertyName);
|
|
282
|
+
history.currentPath.push(propertyName);
|
|
283
|
+
const propertyValue = stringifyRef(value[propertyName], options, history);
|
|
284
|
+
history.currentPath.pop();
|
|
285
|
+
history.references.pop();
|
|
286
|
+
if (propertyValue !== "undefined") {
|
|
287
|
+
if (!identifierRegex.test(propertyName)) {
|
|
288
|
+
const escaped = propertyName.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
289
|
+
propertyName = `"${escaped}"`;
|
|
290
|
+
}
|
|
291
|
+
objectValues.push(`${propertyName}: ${propertyValue}`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
if (objectValues.length === 0)
|
|
296
|
+
return "{}";
|
|
297
|
+
return attachActions(getLocalRefs(value), `{\n${objectValues.join(",\n")}\n}`);
|
|
298
|
+
}
|
|
299
|
+
function functionPropertiesToString(functionName, value, options, history) {
|
|
300
|
+
let result = "";
|
|
301
|
+
for (const propertyName in value) {
|
|
302
|
+
if (Object.prototype.hasOwnProperty.call(value, propertyName)) {
|
|
303
|
+
history.references.push(propertyName);
|
|
304
|
+
history.currentPath.push(propertyName);
|
|
305
|
+
const propertyValue = stringifyRef(value[propertyName], options, history);
|
|
306
|
+
history.currentPath.pop();
|
|
307
|
+
history.references.pop();
|
|
308
|
+
if (propertyValue !== "undefined") {
|
|
309
|
+
result += `${functionName}${propertyAccessor(propertyName)} = ${propertyValue};\n`;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
return result;
|
|
314
|
+
}
|
|
315
|
+
function functionToString(value, options, history) {
|
|
316
|
+
const functionName = value.name || "anonymousFunction";
|
|
317
|
+
const functionObject = options.includeFunctionProperties
|
|
318
|
+
? functionPropertiesToString(functionName, value, options, history)
|
|
319
|
+
: "";
|
|
320
|
+
history.references.push("prototype");
|
|
321
|
+
history.currentPath.push("prototype");
|
|
322
|
+
const functionPrototype = options.includeFunctionPrototype
|
|
323
|
+
? functionPropertiesToString(`${functionName}.prototype`, value.prototype, options, history)
|
|
324
|
+
: "";
|
|
325
|
+
history.currentPath.pop();
|
|
326
|
+
history.references.pop();
|
|
327
|
+
let functionStr = String(value);
|
|
328
|
+
if (functionStr.indexOf("[native code]") > -1 && functionStr.length < 100) {
|
|
329
|
+
for (const nfName in nativeFunctions) {
|
|
330
|
+
if (nativeFunctions[nfName] === value) {
|
|
331
|
+
functionStr = nfName;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
if (!functionObject && !functionPrototype) {
|
|
336
|
+
return functionStr;
|
|
337
|
+
}
|
|
338
|
+
return attachActions(getLocalRefs(value), `(function(){\n var ${functionName} = ${String(functionStr)};\n ${functionObject}\n ${functionPrototype}\n return ${functionName};\n}())`);
|
|
339
|
+
}
|
|
340
|
+
function arrayBufferToString(value, options, history) {
|
|
341
|
+
if (!options.includeBuffers)
|
|
342
|
+
return "undefined";
|
|
343
|
+
const str = typedArrayToString(new Int8Array(value), options, history);
|
|
344
|
+
return `(${str}).buffer`;
|
|
345
|
+
}
|
|
346
|
+
function dataViewToString(value, options, history) {
|
|
347
|
+
if (!options.includeBuffers)
|
|
348
|
+
return "undefined";
|
|
349
|
+
const bufString = arrayBufferToString(value.buffer, options, history);
|
|
350
|
+
return `new DataView(${bufString}, ${value.byteOffset}, ${value.byteLength})`;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Converts to string the value, if it wasn't before
|
|
354
|
+
* @param value the value, that converts to string
|
|
355
|
+
* @param references the references to stringified objects
|
|
356
|
+
*/
|
|
357
|
+
function stringify(value, options, history) {
|
|
358
|
+
switch (getInternalType(value)) {
|
|
359
|
+
case "undefined":
|
|
360
|
+
return "undefined";
|
|
361
|
+
case "null":
|
|
362
|
+
return "null";
|
|
363
|
+
case "boolean":
|
|
364
|
+
return String(value);
|
|
365
|
+
case "regexp":
|
|
366
|
+
return regexpToString(value);
|
|
367
|
+
case "string":
|
|
368
|
+
return JSON.stringify(value);
|
|
369
|
+
case "number":
|
|
370
|
+
return numberToString(value);
|
|
371
|
+
case "bigint":
|
|
372
|
+
return `BigInt(${value})`;
|
|
373
|
+
case "symbol":
|
|
374
|
+
return symbolToString(value);
|
|
375
|
+
case "date":
|
|
376
|
+
return dateToString(value);
|
|
377
|
+
case "error":
|
|
378
|
+
return errorToString(value);
|
|
379
|
+
case "array":
|
|
380
|
+
return arrayToString(value, options, history);
|
|
381
|
+
case "typedarray":
|
|
382
|
+
return typedArrayToString(value, options, history);
|
|
383
|
+
case "set":
|
|
384
|
+
if (value instanceof WeakSet) {
|
|
385
|
+
if (options.throwOnNonSerializable) {
|
|
386
|
+
throw new Error("Non-serializable value: WeakSet");
|
|
387
|
+
}
|
|
388
|
+
return "undefined";
|
|
389
|
+
}
|
|
390
|
+
return setToString(value, options, history);
|
|
391
|
+
case "map":
|
|
392
|
+
if (value instanceof WeakMap) {
|
|
393
|
+
if (options.throwOnNonSerializable) {
|
|
394
|
+
throw new Error("Non-serializable value: WeakMap");
|
|
395
|
+
}
|
|
396
|
+
return "undefined";
|
|
397
|
+
}
|
|
398
|
+
return mapToString(value, options, history);
|
|
399
|
+
case "object":
|
|
400
|
+
return objectToString(value, options, history);
|
|
401
|
+
case "function":
|
|
402
|
+
case "generatorfunction":
|
|
403
|
+
return functionToString(value, options, history);
|
|
404
|
+
case "arraybuffer":
|
|
405
|
+
return arrayBufferToString(value, options, history);
|
|
406
|
+
case "dataview":
|
|
407
|
+
return dataViewToString(value, options, history);
|
|
408
|
+
case "promise":
|
|
409
|
+
case "generator":
|
|
410
|
+
case "weakref":
|
|
411
|
+
case "weakmap":
|
|
412
|
+
case "weakset":
|
|
413
|
+
case "finalizationregistry":
|
|
414
|
+
if (options.throwOnNonSerializable) {
|
|
415
|
+
throw new Error(`Non-serializable value: ${getInternalType(value)}`);
|
|
416
|
+
}
|
|
417
|
+
return "undefined";
|
|
418
|
+
default:
|
|
419
|
+
return JSON.stringify(value);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Stringify the value, if it wasn't before
|
|
424
|
+
* @param value the value, that converts to string
|
|
425
|
+
* @param references the references to stringified objects
|
|
426
|
+
*/
|
|
427
|
+
function stringifyRef(value, options, history) {
|
|
428
|
+
const isRefType = (typeof value === "object" && value !== null) || typeof value === "function";
|
|
429
|
+
const index = history.references.indexOf(value);
|
|
430
|
+
// Cross-reference: object was already stringified in a different branch
|
|
431
|
+
if (isRefType && history.visited.has(value) && index < 0) {
|
|
432
|
+
crossRefs.push({
|
|
433
|
+
destPath: [...history.currentPath],
|
|
434
|
+
sourcePath: history.visited.get(value) || [],
|
|
435
|
+
});
|
|
436
|
+
return "null";
|
|
437
|
+
}
|
|
438
|
+
if (index < 0 || typeof history.references[index] === "string") {
|
|
439
|
+
const objectType = getInternalType(value);
|
|
440
|
+
const referencesLength = history.references.length;
|
|
441
|
+
// Track first-seen path for reference types
|
|
442
|
+
if (isRefType && !history.visited.has(value)) {
|
|
443
|
+
history.visited.set(value, [...history.currentPath]);
|
|
444
|
+
}
|
|
445
|
+
history.references.push(value);
|
|
446
|
+
switch (objectType) {
|
|
447
|
+
case "object":
|
|
448
|
+
if (history.nestedObjectsLeft <= 0)
|
|
449
|
+
return "undefined";
|
|
450
|
+
history.nestedObjectsLeft--;
|
|
451
|
+
break;
|
|
452
|
+
case "array":
|
|
453
|
+
case "typedarray":
|
|
454
|
+
if (history.nestedArraysLeft <= 0)
|
|
455
|
+
return "undefined";
|
|
456
|
+
history.nestedArraysLeft--;
|
|
457
|
+
break;
|
|
458
|
+
case "function":
|
|
459
|
+
case "generatorfunction":
|
|
460
|
+
if (history.nestedFunctionsLeft <= 0)
|
|
461
|
+
return "undefined";
|
|
462
|
+
history.nestedFunctionsLeft--;
|
|
463
|
+
break;
|
|
464
|
+
}
|
|
465
|
+
const refString = stringify(value, options, history);
|
|
466
|
+
history.references.splice(referencesLength);
|
|
467
|
+
switch (objectType) {
|
|
468
|
+
case "object":
|
|
469
|
+
history.nestedObjectsLeft++;
|
|
470
|
+
break;
|
|
471
|
+
case "array":
|
|
472
|
+
case "typedarray":
|
|
473
|
+
history.nestedArraysLeft++;
|
|
474
|
+
break;
|
|
475
|
+
case "function":
|
|
476
|
+
case "generatorfunction":
|
|
477
|
+
history.nestedFunctionsLeft++;
|
|
478
|
+
break;
|
|
479
|
+
}
|
|
480
|
+
return refString;
|
|
481
|
+
}
|
|
482
|
+
else {
|
|
483
|
+
// Circular reference: back-reference to an ancestor in current path
|
|
484
|
+
refs.push({
|
|
485
|
+
historyRef: history.references.slice(0),
|
|
486
|
+
source: value,
|
|
487
|
+
});
|
|
488
|
+
}
|
|
489
|
+
return "null";
|
|
490
|
+
}
|
|
491
|
+
function attachCrossRefActions(localCrossRefs, result) {
|
|
492
|
+
if (localCrossRefs.length === 0) {
|
|
493
|
+
return result;
|
|
494
|
+
}
|
|
495
|
+
counter = (counter + 1) % Number.MAX_SAFE_INTEGER;
|
|
496
|
+
const localName = `___ref${counter}`;
|
|
497
|
+
const actions = localCrossRefs
|
|
498
|
+
.map((cr) => {
|
|
499
|
+
const destAccessor = cr.destPath.map(propertyAccessor).join("");
|
|
500
|
+
const srcAccessor = cr.sourcePath.map(propertyAccessor).join("");
|
|
501
|
+
return `${localName}${destAccessor} = ${localName}${srcAccessor}; `;
|
|
502
|
+
})
|
|
503
|
+
.join("");
|
|
504
|
+
return `(function(){ var ${localName} = ${result}; ${actions}return ${localName}; }())`;
|
|
505
|
+
}
|
|
506
|
+
/**
|
|
507
|
+
* Converts JavaScript value to string
|
|
508
|
+
* @param value the value of any type
|
|
509
|
+
* @param options [optional] The options of conversion
|
|
510
|
+
*/
|
|
511
|
+
function javaScriptToString(value, options) {
|
|
512
|
+
options = options || {};
|
|
513
|
+
const concreteOptions = {
|
|
514
|
+
includeFunctionProperties: options.includeFunctionProperties === undefined ? true : options.includeFunctionProperties,
|
|
515
|
+
includeFunctionPrototype: options.includeFunctionPrototype === undefined ? true : options.includeFunctionPrototype,
|
|
516
|
+
includeBuffers: options.includeBuffers === undefined ? true : options.includeBuffers,
|
|
517
|
+
nestedObjectsAmount: options.nestedObjectsAmount === undefined ? Number.POSITIVE_INFINITY : options.nestedObjectsAmount,
|
|
518
|
+
nestedArraysAmount: options.nestedArraysAmount === undefined ? Number.POSITIVE_INFINITY : options.nestedArraysAmount,
|
|
519
|
+
nestedFunctionsAmount: options.nestedFunctionsAmount === undefined ? Number.POSITIVE_INFINITY : options.nestedFunctionsAmount,
|
|
520
|
+
throwOnNonSerializable: options.throwOnNonSerializable === undefined ? false : options.throwOnNonSerializable,
|
|
521
|
+
};
|
|
522
|
+
// Clear global state before conversion
|
|
523
|
+
refs = [];
|
|
524
|
+
crossRefs = [];
|
|
525
|
+
counter = 0;
|
|
526
|
+
const visited = new Map();
|
|
527
|
+
visited.set(value, []);
|
|
528
|
+
const result = stringify(value, concreteOptions, {
|
|
529
|
+
references: [value],
|
|
530
|
+
nestedObjectsLeft: concreteOptions.nestedObjectsAmount,
|
|
531
|
+
nestedArraysLeft: concreteOptions.nestedArraysAmount,
|
|
532
|
+
nestedFunctionsLeft: concreteOptions.nestedFunctionsAmount,
|
|
533
|
+
visited,
|
|
534
|
+
currentPath: [],
|
|
535
|
+
});
|
|
536
|
+
// Handle circular references at the top level (Issue #1)
|
|
537
|
+
const circularResult = attachActions(getLocalRefs(value), result);
|
|
538
|
+
// Handle cross-references between different branches
|
|
539
|
+
return attachCrossRefActions(crossRefs, circularResult);
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
export { javaScriptToString as default };
|
|
543
|
+
//# sourceMappingURL=javascripttostring.esm.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"javascripttostring.esm.mjs","sources":["../node_modules/@lopatnov/get-internal-type/dist/get-internal-type.esm.mjs","../src/javascripttostring.ts"],"sourcesContent":["const types = {};\nconst typesToString = Object.prototype.toString;\nconst builtInList = [\n \"Boolean\",\n \"Number\",\n \"String\",\n \"Array\",\n \"Date\",\n \"RegExp\",\n \"Object\",\n \"Error\",\n \"Promise\",\n \"DataView\",\n \"WeakRef\",\n \"FinalizationRegistry\"\n];\nconst functions = [\"Function\", \"AsyncFunction\"];\nconst generators = [\"Generator\", \"AsyncGenerator\"];\nconst generatorFunctions = [\"GeneratorFunction\", \"AsyncGeneratorFunction\"];\nconst arrayBuffers = [\"ArrayBuffer\", \"SharedArrayBuffer\"];\nconst maps = [\"Map\", \"WeakMap\"];\nconst sets = [\"Set\", \"WeakSet\"];\nconst typedArrays = [\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Uint16Array\",\n \"Int32Array\",\n \"Uint32Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"BigInt64Array\",\n \"BigUint64Array\"\n];\nbuiltInList.forEach(function (name) {\n types[\"[object \" + name + \"]\"] = name.toLowerCase();\n});\nfunctions.forEach(function (name) {\n types[\"[object \" + name + \"]\"] = \"function\";\n});\ngenerators.forEach(function (name) {\n types[\"[object \" + name + \"]\"] = \"generator\";\n});\ngeneratorFunctions.forEach(function (name) {\n types[\"[object \" + name + \"]\"] = \"generatorfunction\";\n});\narrayBuffers.forEach(function (name) {\n types[\"[object \" + name + \"]\"] = \"arraybuffer\";\n});\nmaps.forEach(function (name) {\n types[\"[object \" + name + \"]\"] = \"map\";\n});\nsets.forEach(function (name) {\n types[\"[object \" + name + \"]\"] = \"set\";\n});\ntypedArrays.forEach(function (name) {\n types[\"[object \" + name + \"]\"] = \"typedarray\";\n});\nfunction getInternalType(obj) {\n return obj == null\n ? obj + \"\"\n : typeof obj === \"object\" || typeof obj === \"function\"\n ? types[typesToString.call(obj)] || \"object\"\n : typeof obj;\n}\n\nexport { getInternalType as default, getInternalType };\n//# sourceMappingURL=get-internal-type.esm.mjs.map\n",null],"names":["getObjectType"],"mappings":"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","x_google_ignoreList":[0]}
|