seroval 1.0.0 → 1.0.2
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/dist/cjs/development/index.cjs +52 -64
- package/dist/cjs/development/index.cjs.map +2 -2
- package/dist/cjs/production/index.cjs +3 -3
- package/dist/esm/development/index.mjs +52 -64
- package/dist/esm/development/index.mjs.map +2 -2
- package/dist/esm/production/index.mjs +3 -3
- package/dist/types/core/context/parser/stream.d.ts.map +1 -1
- package/dist/types/core/context/parser/sync.d.ts.map +1 -1
- package/dist/types/core/context/parser.d.ts +10 -4
- package/dist/types/core/context/parser.d.ts.map +1 -1
- package/dist/types/core/context/serializer.d.ts +10 -5
- package/dist/types/core/context/serializer.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/core/context/parser/stream.ts +1 -14
- package/src/core/context/parser/sync.ts +1 -15
- package/src/core/context/parser.ts +38 -12
- package/src/core/context/serializer.ts +40 -48
|
@@ -920,25 +920,25 @@ var BaseParserContext = class {
|
|
|
920
920
|
if (registeredId != null) {
|
|
921
921
|
this.markRef(registeredId);
|
|
922
922
|
return {
|
|
923
|
-
type: 1
|
|
923
|
+
type: 1 /* Indexed */,
|
|
924
924
|
value: createIndexedValueNode(registeredId)
|
|
925
925
|
};
|
|
926
926
|
}
|
|
927
927
|
const id = this.refs.size;
|
|
928
928
|
this.refs.set(current, id);
|
|
929
929
|
return {
|
|
930
|
-
type: 0
|
|
930
|
+
type: 0 /* Fresh */,
|
|
931
931
|
value: id
|
|
932
932
|
};
|
|
933
933
|
}
|
|
934
934
|
getReference(current) {
|
|
935
935
|
const indexed = this.getIndexedValue(current);
|
|
936
|
-
if (indexed.type === 1) {
|
|
936
|
+
if (indexed.type === 1 /* Indexed */) {
|
|
937
937
|
return indexed;
|
|
938
938
|
}
|
|
939
939
|
if (hasReferenceID(current)) {
|
|
940
940
|
return {
|
|
941
|
-
type: 2
|
|
941
|
+
type: 2 /* Referenced */,
|
|
942
942
|
value: createReferenceNode(indexed.value, current)
|
|
943
943
|
};
|
|
944
944
|
}
|
|
@@ -952,7 +952,7 @@ var BaseParserContext = class {
|
|
|
952
952
|
)
|
|
953
953
|
);
|
|
954
954
|
const result = this.getIndexedValue(current);
|
|
955
|
-
if (result.type === 1) {
|
|
955
|
+
if (result.type === 1 /* Indexed */) {
|
|
956
956
|
return result.value;
|
|
957
957
|
}
|
|
958
958
|
return createReferenceNode(result.value, current);
|
|
@@ -962,7 +962,7 @@ var BaseParserContext = class {
|
|
|
962
962
|
}
|
|
963
963
|
parseWellKnownSymbol(current) {
|
|
964
964
|
const ref = this.getReference(current);
|
|
965
|
-
if (ref.type !== 0) {
|
|
965
|
+
if (ref.type !== 0 /* Fresh */) {
|
|
966
966
|
return ref.value;
|
|
967
967
|
}
|
|
968
968
|
assert(
|
|
@@ -973,7 +973,7 @@ var BaseParserContext = class {
|
|
|
973
973
|
}
|
|
974
974
|
parseSpecialReference(ref) {
|
|
975
975
|
const result = this.getIndexedValue(SPECIAL_REFS[ref]);
|
|
976
|
-
if (result.type === 1) {
|
|
976
|
+
if (result.type === 1 /* Indexed */) {
|
|
977
977
|
return result.value;
|
|
978
978
|
}
|
|
979
979
|
return {
|
|
@@ -993,7 +993,7 @@ var BaseParserContext = class {
|
|
|
993
993
|
}
|
|
994
994
|
parseIteratorFactory() {
|
|
995
995
|
const result = this.getIndexedValue(ITERATOR);
|
|
996
|
-
if (result.type === 1) {
|
|
996
|
+
if (result.type === 1 /* Indexed */) {
|
|
997
997
|
return result.value;
|
|
998
998
|
}
|
|
999
999
|
return {
|
|
@@ -1013,7 +1013,7 @@ var BaseParserContext = class {
|
|
|
1013
1013
|
}
|
|
1014
1014
|
parseAsyncIteratorFactory() {
|
|
1015
1015
|
const result = this.getIndexedValue(ASYNC_ITERATOR);
|
|
1016
|
-
if (result.type === 1) {
|
|
1016
|
+
if (result.type === 1 /* Indexed */) {
|
|
1017
1017
|
return result.value;
|
|
1018
1018
|
}
|
|
1019
1019
|
return {
|
|
@@ -1066,6 +1066,22 @@ var BaseParserContext = class {
|
|
|
1066
1066
|
o: void 0
|
|
1067
1067
|
};
|
|
1068
1068
|
}
|
|
1069
|
+
createPromiseConstructorNode(id) {
|
|
1070
|
+
return {
|
|
1071
|
+
t: 22 /* PromiseConstructor */,
|
|
1072
|
+
i: id,
|
|
1073
|
+
s: void 0,
|
|
1074
|
+
l: void 0,
|
|
1075
|
+
c: void 0,
|
|
1076
|
+
m: void 0,
|
|
1077
|
+
p: void 0,
|
|
1078
|
+
e: void 0,
|
|
1079
|
+
a: void 0,
|
|
1080
|
+
f: this.parseSpecialReference(1 /* PromiseConstructor */),
|
|
1081
|
+
b: void 0,
|
|
1082
|
+
o: void 0
|
|
1083
|
+
};
|
|
1084
|
+
}
|
|
1069
1085
|
};
|
|
1070
1086
|
|
|
1071
1087
|
// src/core/utils/promise-to-result.ts
|
|
@@ -1953,16 +1969,14 @@ function isValidIdentifier(name) {
|
|
|
1953
1969
|
// src/core/context/serializer.ts
|
|
1954
1970
|
function getAssignmentExpression(assignment) {
|
|
1955
1971
|
switch (assignment.t) {
|
|
1956
|
-
case
|
|
1972
|
+
case 0 /* Index */:
|
|
1957
1973
|
return assignment.s + "=" + assignment.v;
|
|
1958
|
-
case
|
|
1974
|
+
case 2 /* Set */:
|
|
1959
1975
|
return assignment.s + ".set(" + assignment.k + "," + assignment.v + ")";
|
|
1960
|
-
case
|
|
1976
|
+
case 1 /* Add */:
|
|
1961
1977
|
return assignment.s + ".add(" + assignment.v + ")";
|
|
1962
|
-
case
|
|
1978
|
+
case 3 /* Delete */:
|
|
1963
1979
|
return assignment.s + ".delete(" + assignment.k + ")";
|
|
1964
|
-
default:
|
|
1965
|
-
return "";
|
|
1966
1980
|
}
|
|
1967
1981
|
}
|
|
1968
1982
|
function mergeAssignments(assignments) {
|
|
@@ -1970,30 +1984,30 @@ function mergeAssignments(assignments) {
|
|
|
1970
1984
|
let current = assignments[0];
|
|
1971
1985
|
for (let i = 1, len = assignments.length, item, prev = current; i < len; i++) {
|
|
1972
1986
|
item = assignments[i];
|
|
1973
|
-
if (item.t ===
|
|
1987
|
+
if (item.t === 0 /* Index */ && item.v === prev.v) {
|
|
1974
1988
|
current = {
|
|
1975
|
-
t:
|
|
1989
|
+
t: 0 /* Index */,
|
|
1976
1990
|
s: item.s,
|
|
1977
1991
|
k: void 0,
|
|
1978
1992
|
v: getAssignmentExpression(current)
|
|
1979
1993
|
};
|
|
1980
|
-
} else if (item.t ===
|
|
1994
|
+
} else if (item.t === 2 /* Set */ && item.s === prev.s) {
|
|
1981
1995
|
current = {
|
|
1982
|
-
t:
|
|
1996
|
+
t: 2 /* Set */,
|
|
1983
1997
|
s: getAssignmentExpression(current),
|
|
1984
1998
|
k: item.k,
|
|
1985
1999
|
v: item.v
|
|
1986
2000
|
};
|
|
1987
|
-
} else if (item.t ===
|
|
2001
|
+
} else if (item.t === 1 /* Add */ && item.s === prev.s) {
|
|
1988
2002
|
current = {
|
|
1989
|
-
t:
|
|
2003
|
+
t: 1 /* Add */,
|
|
1990
2004
|
s: getAssignmentExpression(current),
|
|
1991
2005
|
k: void 0,
|
|
1992
2006
|
v: item.v
|
|
1993
2007
|
};
|
|
1994
|
-
} else if (item.t ===
|
|
2008
|
+
} else if (item.t === 3 /* Delete */ && item.s === prev.s) {
|
|
1995
2009
|
current = {
|
|
1996
|
-
t:
|
|
2010
|
+
t: 3 /* Delete */,
|
|
1997
2011
|
s: getAssignmentExpression(current),
|
|
1998
2012
|
k: item.k,
|
|
1999
2013
|
v: void 0
|
|
@@ -2111,7 +2125,7 @@ var BaseSerializerContext = class {
|
|
|
2111
2125
|
*/
|
|
2112
2126
|
createAssignment(source, value) {
|
|
2113
2127
|
this.assignments.push({
|
|
2114
|
-
t:
|
|
2128
|
+
t: 0 /* Index */,
|
|
2115
2129
|
s: source,
|
|
2116
2130
|
k: void 0,
|
|
2117
2131
|
v: value
|
|
@@ -2119,7 +2133,7 @@ var BaseSerializerContext = class {
|
|
|
2119
2133
|
}
|
|
2120
2134
|
createAddAssignment(ref, value) {
|
|
2121
2135
|
this.assignments.push({
|
|
2122
|
-
t:
|
|
2136
|
+
t: 1 /* Add */,
|
|
2123
2137
|
s: this.getRefParam(ref),
|
|
2124
2138
|
k: void 0,
|
|
2125
2139
|
v: value
|
|
@@ -2127,7 +2141,7 @@ var BaseSerializerContext = class {
|
|
|
2127
2141
|
}
|
|
2128
2142
|
createSetAssignment(ref, key, value) {
|
|
2129
2143
|
this.assignments.push({
|
|
2130
|
-
t:
|
|
2144
|
+
t: 2 /* Set */,
|
|
2131
2145
|
s: this.getRefParam(ref),
|
|
2132
2146
|
k: key,
|
|
2133
2147
|
v: value
|
|
@@ -2135,7 +2149,7 @@ var BaseSerializerContext = class {
|
|
|
2135
2149
|
}
|
|
2136
2150
|
createDeleteAssignment(ref, key) {
|
|
2137
2151
|
this.assignments.push({
|
|
2138
|
-
t:
|
|
2152
|
+
t: 3 /* Delete */,
|
|
2139
2153
|
s: this.getRefParam(ref),
|
|
2140
2154
|
k: key,
|
|
2141
2155
|
v: void 0
|
|
@@ -2218,9 +2232,9 @@ var BaseSerializerContext = class {
|
|
|
2218
2232
|
serializeProperties(source, record) {
|
|
2219
2233
|
const len = record.s;
|
|
2220
2234
|
if (len) {
|
|
2221
|
-
this.stack.push(source.i);
|
|
2222
2235
|
const keys = record.k;
|
|
2223
2236
|
const values = record.v;
|
|
2237
|
+
this.stack.push(source.i);
|
|
2224
2238
|
let result = this.serializeProperty(source, keys[0], values[0]);
|
|
2225
2239
|
for (let i = 1, item = result; i < len; i++) {
|
|
2226
2240
|
item = this.serializeProperty(source, keys[i], values[i]);
|
|
@@ -2291,10 +2305,10 @@ var BaseSerializerContext = class {
|
|
|
2291
2305
|
serializeAssignments(source, node) {
|
|
2292
2306
|
const len = node.s;
|
|
2293
2307
|
if (len) {
|
|
2294
|
-
this.stack.push(source.i);
|
|
2295
2308
|
const mainAssignments = [];
|
|
2296
2309
|
const keys = node.k;
|
|
2297
2310
|
const values = node.v;
|
|
2311
|
+
this.stack.push(source.i);
|
|
2298
2312
|
for (let i = 0; i < len; i++) {
|
|
2299
2313
|
this.serializeAssignment(source, mainAssignments, keys[i], values[i]);
|
|
2300
2314
|
}
|
|
@@ -2449,9 +2463,12 @@ var BaseSerializerContext = class {
|
|
|
2449
2463
|
serializeAggregateError(node) {
|
|
2450
2464
|
const id = node.i;
|
|
2451
2465
|
this.stack.push(id);
|
|
2452
|
-
const serialized =
|
|
2466
|
+
const serialized = this.serializeDictionary(
|
|
2467
|
+
node,
|
|
2468
|
+
'new AggregateError([],"' + node.m + '")'
|
|
2469
|
+
);
|
|
2453
2470
|
this.stack.pop();
|
|
2454
|
-
return
|
|
2471
|
+
return serialized;
|
|
2455
2472
|
}
|
|
2456
2473
|
serializeError(node) {
|
|
2457
2474
|
return this.serializeDictionary(
|
|
@@ -2478,9 +2495,6 @@ var BaseSerializerContext = class {
|
|
|
2478
2495
|
serializeWellKnownSymbol(node) {
|
|
2479
2496
|
return this.assignIndexedValue(node.i, SYMBOL_STRING[node.s]);
|
|
2480
2497
|
}
|
|
2481
|
-
serializeFormDataEntry(id, key, value) {
|
|
2482
|
-
return this.getRefParam(id) + '.append("' + key + '",' + this.serialize(value) + ")";
|
|
2483
|
-
}
|
|
2484
2498
|
serializeBoxed(node) {
|
|
2485
2499
|
return this.assignIndexedValue(
|
|
2486
2500
|
node.i,
|
|
@@ -2539,9 +2553,9 @@ var BaseSerializerContext = class {
|
|
|
2539
2553
|
case 4 /* StreamConstructor */:
|
|
2540
2554
|
return this.createFunction(
|
|
2541
2555
|
["b", "a", "s", "l", "p", "f", "e", "n"],
|
|
2542
|
-
"(b=[],a=!0,s=!1,l=[],
|
|
2556
|
+
"(b=[],a=!0,s=!1,l=[],p=0,f=" + this.createEffectfulFunction(
|
|
2543
2557
|
["v", "m", "x"],
|
|
2544
|
-
"for(x=0;x<
|
|
2558
|
+
"for(x=0;x<p;x++)l[x]&&l[x][m](v)"
|
|
2545
2559
|
) + ",n=" + this.createEffectfulFunction(
|
|
2546
2560
|
["o", "x", "z", "c"],
|
|
2547
2561
|
'for(x=0,z=b.length;x<z;x++)(c=b[x],x===z-1?o[s?"return":"throw"](c):o.next(c))'
|
|
@@ -2968,20 +2982,7 @@ var BaseSyncParserContext = class extends BaseParserContext {
|
|
|
2968
2982
|
);
|
|
2969
2983
|
}
|
|
2970
2984
|
parsePromise(id, _current) {
|
|
2971
|
-
return
|
|
2972
|
-
t: 22 /* PromiseConstructor */,
|
|
2973
|
-
i: id,
|
|
2974
|
-
s: void 0,
|
|
2975
|
-
l: void 0,
|
|
2976
|
-
c: void 0,
|
|
2977
|
-
m: void 0,
|
|
2978
|
-
p: void 0,
|
|
2979
|
-
e: void 0,
|
|
2980
|
-
a: void 0,
|
|
2981
|
-
f: this.parseSpecialReference(1 /* PromiseConstructor */),
|
|
2982
|
-
b: void 0,
|
|
2983
|
-
o: void 0
|
|
2984
|
-
};
|
|
2985
|
+
return this.createPromiseConstructorNode(id);
|
|
2985
2986
|
}
|
|
2986
2987
|
parseObject(id, current) {
|
|
2987
2988
|
if (Array.isArray(current)) {
|
|
@@ -3392,20 +3393,7 @@ var BaseStreamParserContext = class extends BaseSyncParserContext {
|
|
|
3392
3393
|
}
|
|
3393
3394
|
);
|
|
3394
3395
|
this.pushPendingState();
|
|
3395
|
-
return
|
|
3396
|
-
t: 22 /* PromiseConstructor */,
|
|
3397
|
-
i: id,
|
|
3398
|
-
s: void 0,
|
|
3399
|
-
l: void 0,
|
|
3400
|
-
c: void 0,
|
|
3401
|
-
m: void 0,
|
|
3402
|
-
p: void 0,
|
|
3403
|
-
e: void 0,
|
|
3404
|
-
a: void 0,
|
|
3405
|
-
f: this.parseSpecialReference(1 /* PromiseConstructor */),
|
|
3406
|
-
b: void 0,
|
|
3407
|
-
o: void 0
|
|
3408
|
-
};
|
|
3396
|
+
return this.createPromiseConstructorNode(id);
|
|
3409
3397
|
}
|
|
3410
3398
|
parsePlugin(id, current) {
|
|
3411
3399
|
const currentPlugins = this.plugins;
|