seroval 1.2.1 → 1.3.1
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/dist/cjs/development/index.cjs +270 -383
- package/dist/cjs/development/index.cjs.map +3 -3
- package/dist/cjs/production/index.cjs +6 -6
- package/dist/esm/development/index.mjs +270 -383
- package/dist/esm/development/index.mjs.map +3 -3
- package/dist/esm/production/index.mjs +6 -6
- package/dist/types/core/base-primitives.d.ts +1 -2
- package/dist/types/core/base-primitives.d.ts.map +1 -1
- package/dist/types/core/compat.d.ts +2 -3
- package/dist/types/core/compat.d.ts.map +1 -1
- package/dist/types/core/constants.d.ts +3 -6
- package/dist/types/core/constants.d.ts.map +1 -1
- package/dist/types/core/context/deserializer.d.ts +0 -3
- package/dist/types/core/context/deserializer.d.ts.map +1 -1
- package/dist/types/core/context/parser/async.d.ts +1 -2
- package/dist/types/core/context/parser/async.d.ts.map +1 -1
- package/dist/types/core/context/parser/stream.d.ts +8 -8
- package/dist/types/core/context/parser/stream.d.ts.map +1 -1
- package/dist/types/core/context/parser/sync.d.ts +2 -3
- package/dist/types/core/context/parser/sync.d.ts.map +1 -1
- package/dist/types/core/context/parser.d.ts +3 -3
- package/dist/types/core/context/parser.d.ts.map +1 -1
- package/dist/types/core/context/serializer.d.ts +1 -5
- package/dist/types/core/context/serializer.d.ts.map +1 -1
- package/dist/types/core/function-string.d.ts +3 -0
- package/dist/types/core/function-string.d.ts.map +1 -0
- package/dist/types/core/special-reference.d.ts +4 -5
- package/dist/types/core/special-reference.d.ts.map +1 -1
- package/dist/types/core/tree/serializer.d.ts +1 -2
- package/dist/types/core/tree/serializer.d.ts.map +1 -1
- package/dist/types/core/types.d.ts +5 -19
- package/dist/types/core/types.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/core/base-primitives.ts +2 -22
- package/src/core/compat.ts +6 -2
- package/src/core/constants.ts +2 -5
- package/src/core/context/deserializer.ts +2 -35
- package/src/core/context/parser/async.ts +54 -83
- package/src/core/context/parser/stream.ts +64 -111
- package/src/core/context/parser/sync.ts +53 -83
- package/src/core/context/parser.ts +9 -24
- package/src/core/context/serializer.ts +24 -131
- package/src/core/function-string.ts +31 -0
- package/src/core/special-reference.ts +96 -8
- package/src/core/tree/serializer.ts +0 -7
- package/src/core/types.ts +5 -27
- package/dist/types/core/abort-signal.d.ts +0 -2
- package/dist/types/core/abort-signal.d.ts.map +0 -1
- package/src/core/abort-signal.ts +0 -19
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-string.d.ts","sourceRoot":"","sources":["../../../src/core/function-string.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,EAAE,MAAM,GACX,MAAM,CASR;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,EAAE,MAAM,GACX,MAAM,CASR"}
|
|
@@ -3,14 +3,13 @@ export declare const ASYNC_ITERATOR: {};
|
|
|
3
3
|
export declare const enum SpecialReference {
|
|
4
4
|
MapSentinel = 0,
|
|
5
5
|
PromiseConstructor = 1,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
StreamConstructor = 4
|
|
9
|
-
AbortSignalConstructor = 5,
|
|
10
|
-
AbortSignalAbort = 6
|
|
6
|
+
PromiseSuccess = 2,
|
|
7
|
+
PromiseFailure = 3,
|
|
8
|
+
StreamConstructor = 4
|
|
11
9
|
}
|
|
12
10
|
/**
|
|
13
11
|
* Placeholder references
|
|
14
12
|
*/
|
|
15
13
|
export declare const SPECIAL_REFS: Record<SpecialReference, unknown>;
|
|
14
|
+
export declare function serializeSpecialReferenceValue(features: number, ref: SpecialReference): string;
|
|
16
15
|
//# sourceMappingURL=special-reference.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"special-reference.d.ts","sourceRoot":"","sources":["../../../src/core/special-reference.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"special-reference.d.ts","sourceRoot":"","sources":["../../../src/core/special-reference.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,IAAK,CAAC;AAE3B,eAAO,MAAM,cAAc,IAAK,CAAC;AAEjC,0BAAkB,gBAAgB;IAChC,WAAW,IAAI;IACf,kBAAkB,IAAI;IACtB,cAAc,IAAI;IAClB,cAAc,IAAI;IAClB,iBAAiB,IAAI;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAM1D,CAAC;AAwEF,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,gBAAgB,GACpB,MAAM,CAeR"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BaseSerializerContextOptions } from '../context/serializer';
|
|
2
2
|
import BaseSerializerContext from '../context/serializer';
|
|
3
3
|
import type { SerovalMode } from '../plugin';
|
|
4
|
-
import type {
|
|
4
|
+
import type { SerovalNode, SerovalPromiseConstructorNode, SerovalPromiseRejectNode, SerovalPromiseResolveNode } from '../types';
|
|
5
5
|
export type VanillaSerializerContextOptions = BaseSerializerContextOptions;
|
|
6
6
|
export default class VanillaSerializerContext extends BaseSerializerContext {
|
|
7
7
|
readonly mode: SerovalMode;
|
|
@@ -24,7 +24,6 @@ export default class VanillaSerializerContext extends BaseSerializerContext {
|
|
|
24
24
|
protected serializePromiseConstructor(node: SerovalPromiseConstructorNode): string;
|
|
25
25
|
protected serializePromiseResolve(node: SerovalPromiseResolveNode): string;
|
|
26
26
|
protected serializePromiseReject(node: SerovalPromiseRejectNode): string;
|
|
27
|
-
protected serializeAbortSignalAbort(node: SerovalAbortSignalAbortNode): string;
|
|
28
27
|
serializeTop(tree: SerovalNode): string;
|
|
29
28
|
}
|
|
30
29
|
//# sourceMappingURL=serializer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/serializer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,qBAAqB,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../../src/core/tree/serializer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,qBAAqB,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EACV,WAAW,EACX,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,+BAA+B,GAAG,4BAA4B,CAAC;AAE3E,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,qBAAqB;IACzE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAa;IAEvC;;;OAGG;IACH,KAAK,sBAA6B;IAElC;;;OAGG;IACH,IAAI,EAAE,MAAM,EAAE,CAAM;IAEpB;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAoBlC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAOlE,SAAS,CAAC,2BAA2B,CACnC,IAAI,EAAE,6BAA6B,GAClC,MAAM;IAIT,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,yBAAyB,GAAG,MAAM;IAI1E,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM;IAIxE,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;CAsBxC"}
|
|
@@ -154,15 +154,16 @@ export interface SerovalBoxedNode extends SerovalBaseNode {
|
|
|
154
154
|
export interface SerovalPromiseConstructorNode extends SerovalBaseNode {
|
|
155
155
|
t: SerovalNodeType.PromiseConstructor;
|
|
156
156
|
i: number;
|
|
157
|
+
s: number;
|
|
157
158
|
f: SerovalNodeWithID;
|
|
158
159
|
}
|
|
159
160
|
export interface SerovalPromiseResolveNode extends SerovalBaseNode {
|
|
160
|
-
t: SerovalNodeType.
|
|
161
|
+
t: SerovalNodeType.PromiseSuccess;
|
|
161
162
|
i: number;
|
|
162
163
|
a: [resolver: SerovalNodeWithID, resolved: SerovalNode];
|
|
163
164
|
}
|
|
164
165
|
export interface SerovalPromiseRejectNode extends SerovalBaseNode {
|
|
165
|
-
t: SerovalNodeType.
|
|
166
|
+
t: SerovalNodeType.PromiseFailure;
|
|
166
167
|
i: number;
|
|
167
168
|
a: [resolver: SerovalNodeWithID, resolved: SerovalNode];
|
|
168
169
|
}
|
|
@@ -219,23 +220,8 @@ export interface SerovalStreamReturnNode extends SerovalBaseNode {
|
|
|
219
220
|
i: number;
|
|
220
221
|
f: SerovalNode;
|
|
221
222
|
}
|
|
222
|
-
export
|
|
223
|
-
|
|
224
|
-
i: number;
|
|
225
|
-
f: SerovalNodeWithID;
|
|
226
|
-
}
|
|
227
|
-
export interface SerovalAbortSignalAbortNode extends SerovalBaseNode {
|
|
228
|
-
t: SerovalNodeType.AbortSignalAbort;
|
|
229
|
-
i: number;
|
|
230
|
-
a: [resolver: SerovalNodeWithID, resolved: SerovalNode];
|
|
231
|
-
}
|
|
232
|
-
export interface SerovalAbortSignalSyncNode extends SerovalBaseNode {
|
|
233
|
-
t: SerovalNodeType.AbortSignalSync;
|
|
234
|
-
i: number;
|
|
235
|
-
f: SerovalNode;
|
|
236
|
-
}
|
|
237
|
-
export type SerovalSyncNode = SerovalPrimitiveNode | SerovalIndexedValueNode | SerovalSemiPrimitiveNode | SerovalSetNode | SerovalMapNode | SerovalArrayNode | SerovalObjectNode | SerovalNullConstructorNode | SerovalPromiseNode | SerovalErrorNode | SerovalAggregateErrorNode | SerovalWKSymbolNode | SerovalReferenceNode | SerovalArrayBufferNode | SerovalDataViewNode | SerovalBoxedNode | SerovalPluginNode | SerovalSpecialReferenceNode | SerovalIteratorFactoryNode | SerovalIteratorFactoryInstanceNode | SerovalAsyncIteratorFactoryNode | SerovalAsyncIteratorFactoryInstanceNode | SerovalAbortSignalSyncNode;
|
|
238
|
-
export type SerovalAsyncNode = SerovalPromiseNode | SerovalPromiseConstructorNode | SerovalPromiseResolveNode | SerovalPromiseRejectNode | SerovalStreamConstructorNode | SerovalStreamNextNode | SerovalStreamThrowNode | SerovalStreamReturnNode | SerovalAbortSignalConstructorNode | SerovalAbortSignalAbortNode;
|
|
223
|
+
export type SerovalSyncNode = SerovalPrimitiveNode | SerovalIndexedValueNode | SerovalSemiPrimitiveNode | SerovalSetNode | SerovalMapNode | SerovalArrayNode | SerovalObjectNode | SerovalNullConstructorNode | SerovalPromiseNode | SerovalErrorNode | SerovalAggregateErrorNode | SerovalWKSymbolNode | SerovalReferenceNode | SerovalArrayBufferNode | SerovalDataViewNode | SerovalBoxedNode | SerovalPluginNode | SerovalSpecialReferenceNode | SerovalIteratorFactoryNode | SerovalIteratorFactoryInstanceNode | SerovalAsyncIteratorFactoryNode | SerovalAsyncIteratorFactoryInstanceNode;
|
|
224
|
+
export type SerovalAsyncNode = SerovalPromiseNode | SerovalPromiseConstructorNode | SerovalPromiseResolveNode | SerovalPromiseRejectNode | SerovalStreamConstructorNode | SerovalStreamNextNode | SerovalStreamThrowNode | SerovalStreamReturnNode;
|
|
239
225
|
export type SerovalNode = SerovalSyncNode | SerovalAsyncNode;
|
|
240
226
|
export type SerovalNodeWithID = Extract<SerovalNode, {
|
|
241
227
|
i: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "seroval",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.3.1",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
7
7
|
"src"
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
"pridepack"
|
|
15
15
|
],
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"@types/node": "^22.
|
|
18
|
-
"@vitest/ui": "^3.
|
|
17
|
+
"@types/node": "^22.15.12",
|
|
18
|
+
"@vitest/ui": "^3.1.3",
|
|
19
19
|
"pridepack": "2.6.4",
|
|
20
20
|
"ts-prune": "^0.10.3",
|
|
21
21
|
"tslib": "^2.8.1",
|
|
22
|
-
"typescript": "^5.
|
|
23
|
-
"vitest": "^3.
|
|
22
|
+
"typescript": "^5.8.3",
|
|
23
|
+
"vitest": "^3.1.3"
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
26
26
|
"prepublishOnly": "pridepack clean && pridepack build",
|
|
@@ -53,17 +53,17 @@
|
|
|
53
53
|
"module": "./dist/esm/production/index.mjs",
|
|
54
54
|
"exports": {
|
|
55
55
|
".": {
|
|
56
|
+
"types": "./dist/types/index.d.ts",
|
|
56
57
|
"development": {
|
|
57
58
|
"require": "./dist/cjs/development/index.cjs",
|
|
58
59
|
"import": "./dist/esm/development/index.mjs"
|
|
59
60
|
},
|
|
60
61
|
"require": "./dist/cjs/production/index.cjs",
|
|
61
|
-
"import": "./dist/esm/production/index.mjs"
|
|
62
|
-
"types": "./dist/types/index.d.ts"
|
|
62
|
+
"import": "./dist/esm/production/index.mjs"
|
|
63
63
|
}
|
|
64
64
|
},
|
|
65
65
|
"typesVersions": {
|
|
66
66
|
"*": {}
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "cc1352acbff42b3e9078d7007ce2e0ada9392dc0"
|
|
69
69
|
}
|
|
@@ -10,7 +10,6 @@ import { createSerovalNode } from './node';
|
|
|
10
10
|
import { getReferenceID } from './reference';
|
|
11
11
|
import { serializeString } from './string';
|
|
12
12
|
import type {
|
|
13
|
-
SerovalAbortSignalSyncNode,
|
|
14
13
|
SerovalAggregateErrorNode,
|
|
15
14
|
SerovalArrayBufferNode,
|
|
16
15
|
SerovalArrayNode,
|
|
@@ -130,10 +129,11 @@ export function createIndexedValueNode(id: number): SerovalIndexedValueNode {
|
|
|
130
129
|
}
|
|
131
130
|
|
|
132
131
|
export function createDateNode(id: number, current: Date): SerovalDateNode {
|
|
132
|
+
const timestamp = current.valueOf();
|
|
133
133
|
return createSerovalNode(
|
|
134
134
|
SerovalNodeType.Date,
|
|
135
135
|
id,
|
|
136
|
-
current.toISOString(),
|
|
136
|
+
timestamp !== timestamp ? '' : current.toISOString(),
|
|
137
137
|
NIL,
|
|
138
138
|
NIL,
|
|
139
139
|
NIL,
|
|
@@ -540,23 +540,3 @@ export function createStreamReturnNode(
|
|
|
540
540
|
NIL,
|
|
541
541
|
);
|
|
542
542
|
}
|
|
543
|
-
|
|
544
|
-
export function createAbortSignalSyncNode(
|
|
545
|
-
id: number,
|
|
546
|
-
parsed: SerovalNode,
|
|
547
|
-
): SerovalAbortSignalSyncNode {
|
|
548
|
-
return createSerovalNode(
|
|
549
|
-
SerovalNodeType.AbortSignalSync,
|
|
550
|
-
id,
|
|
551
|
-
NIL,
|
|
552
|
-
NIL,
|
|
553
|
-
NIL,
|
|
554
|
-
NIL,
|
|
555
|
-
NIL,
|
|
556
|
-
NIL,
|
|
557
|
-
NIL,
|
|
558
|
-
parsed,
|
|
559
|
-
NIL,
|
|
560
|
-
NIL,
|
|
561
|
-
);
|
|
562
|
-
}
|
package/src/core/compat.ts
CHANGED
|
@@ -10,7 +10,11 @@ export const enum Feature {
|
|
|
10
10
|
ErrorPrototypeStack = 0x04,
|
|
11
11
|
ObjectAssign = 0x08,
|
|
12
12
|
BigIntTypedArray = 0x10,
|
|
13
|
-
AbortSignal = 0x20,
|
|
14
13
|
}
|
|
15
14
|
|
|
16
|
-
export const ALL_ENABLED =
|
|
15
|
+
export const ALL_ENABLED =
|
|
16
|
+
Feature.AggregateError |
|
|
17
|
+
Feature.ArrowFunction |
|
|
18
|
+
Feature.ErrorPrototypeStack |
|
|
19
|
+
Feature.ObjectAssign |
|
|
20
|
+
Feature.BigIntTypedArray;
|
package/src/core/constants.ts
CHANGED
|
@@ -33,8 +33,8 @@ export const enum SerovalNodeType {
|
|
|
33
33
|
DataView = 20,
|
|
34
34
|
Boxed = 21,
|
|
35
35
|
PromiseConstructor = 22,
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
PromiseSuccess = 23,
|
|
37
|
+
PromiseFailure = 24,
|
|
38
38
|
Plugin = 25,
|
|
39
39
|
SpecialReference = 26,
|
|
40
40
|
IteratorFactory = 27,
|
|
@@ -45,9 +45,6 @@ export const enum SerovalNodeType {
|
|
|
45
45
|
StreamNext = 32,
|
|
46
46
|
StreamThrow = 33,
|
|
47
47
|
StreamReturn = 34,
|
|
48
|
-
AbortSignalConstructor = 35,
|
|
49
|
-
AbortSignalAbort = 36,
|
|
50
|
-
AbortSignalSync = 37,
|
|
51
48
|
}
|
|
52
49
|
|
|
53
50
|
export const enum SerovalObjectFlags {
|
|
@@ -17,9 +17,6 @@ import type { Stream } from '../stream';
|
|
|
17
17
|
import { createStream, streamToAsyncIterable } from '../stream';
|
|
18
18
|
import { deserializeString } from '../string';
|
|
19
19
|
import type {
|
|
20
|
-
SerovalAbortSignalAbortNode,
|
|
21
|
-
SerovalAbortSignalConstructorNode,
|
|
22
|
-
SerovalAbortSignalSyncNode,
|
|
23
20
|
SerovalAggregateErrorNode,
|
|
24
21
|
SerovalArrayBufferNode,
|
|
25
22
|
SerovalArrayNode,
|
|
@@ -372,30 +369,6 @@ export default abstract class BaseDeserializerContext
|
|
|
372
369
|
return undefined;
|
|
373
370
|
}
|
|
374
371
|
|
|
375
|
-
private deserializeAbortSignalConstructor(
|
|
376
|
-
node: SerovalAbortSignalConstructorNode,
|
|
377
|
-
): unknown {
|
|
378
|
-
return this.assignIndexedValue(node.i, new AbortController()).signal;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
private deserializeAbortSignalAbort(
|
|
382
|
-
node: SerovalAbortSignalAbortNode,
|
|
383
|
-
): unknown {
|
|
384
|
-
const controller = this.refs.get(node.i) as AbortController | undefined;
|
|
385
|
-
assert(controller, new SerovalMissingInstanceError('AbortSignal'));
|
|
386
|
-
controller.abort(this.deserialize(node.a[1]));
|
|
387
|
-
return undefined;
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
private deserializeAbortSignalSync(
|
|
391
|
-
node: SerovalAbortSignalSyncNode,
|
|
392
|
-
): unknown {
|
|
393
|
-
return this.assignIndexedValue(
|
|
394
|
-
node.i,
|
|
395
|
-
AbortSignal.abort(this.deserialize(node.f)),
|
|
396
|
-
);
|
|
397
|
-
}
|
|
398
|
-
|
|
399
372
|
deserialize(node: SerovalNode): unknown {
|
|
400
373
|
try {
|
|
401
374
|
switch (node.t) {
|
|
@@ -445,9 +418,9 @@ export default abstract class BaseDeserializerContext
|
|
|
445
418
|
return this.deserializePlugin(node);
|
|
446
419
|
case SerovalNodeType.PromiseConstructor:
|
|
447
420
|
return this.deserializePromiseConstructor(node);
|
|
448
|
-
case SerovalNodeType.
|
|
421
|
+
case SerovalNodeType.PromiseSuccess:
|
|
449
422
|
return this.deserializePromiseResolve(node);
|
|
450
|
-
case SerovalNodeType.
|
|
423
|
+
case SerovalNodeType.PromiseFailure:
|
|
451
424
|
return this.deserializePromiseReject(node);
|
|
452
425
|
case SerovalNodeType.IteratorFactoryInstance:
|
|
453
426
|
return this.deserializeIteratorFactoryInstance(node);
|
|
@@ -465,12 +438,6 @@ export default abstract class BaseDeserializerContext
|
|
|
465
438
|
return this.deserializeIteratorFactory(node);
|
|
466
439
|
case SerovalNodeType.AsyncIteratorFactory:
|
|
467
440
|
return this.deserializeAsyncIteratorFactory(node);
|
|
468
|
-
case SerovalNodeType.AbortSignalAbort:
|
|
469
|
-
return this.deserializeAbortSignalAbort(node);
|
|
470
|
-
case SerovalNodeType.AbortSignalConstructor:
|
|
471
|
-
return this.deserializeAbortSignalConstructor(node);
|
|
472
|
-
case SerovalNodeType.AbortSignalSync:
|
|
473
|
-
return this.deserializeAbortSignalSync(node);
|
|
474
441
|
// case SerovalNodeType.SpecialReference:
|
|
475
442
|
default:
|
|
476
443
|
throw new SerovalUnsupportedNodeError(node);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { abortSignalToPromise } from '../../abort-signal';
|
|
2
1
|
import {
|
|
3
2
|
createAggregateErrorNode,
|
|
4
3
|
createArrayBufferNode,
|
|
@@ -38,7 +37,6 @@ import type { Stream } from '../../stream';
|
|
|
38
37
|
import { createStreamFromAsyncIterable, isStream } from '../../stream';
|
|
39
38
|
import { serializeString } from '../../string';
|
|
40
39
|
import type {
|
|
41
|
-
SerovalAbortSignalSyncNode,
|
|
42
40
|
SerovalAggregateErrorNode,
|
|
43
41
|
SerovalArrayNode,
|
|
44
42
|
SerovalBigIntTypedArrayNode,
|
|
@@ -77,7 +75,7 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
77
75
|
for (let i = 0, len = current.length; i < len; i++) {
|
|
78
76
|
// For consistency in holes
|
|
79
77
|
if (i in current) {
|
|
80
|
-
nodes[i] = await this.
|
|
78
|
+
nodes[i] = await this.parseTop(current[i]);
|
|
81
79
|
}
|
|
82
80
|
}
|
|
83
81
|
return nodes;
|
|
@@ -98,7 +96,7 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
98
96
|
const valueNodes: SerovalNode[] = [];
|
|
99
97
|
for (let i = 0, len = entries.length; i < len; i++) {
|
|
100
98
|
keyNodes.push(serializeString(entries[i][0]));
|
|
101
|
-
valueNodes.push(await this.
|
|
99
|
+
valueNodes.push(await this.parseTop(entries[i][1]));
|
|
102
100
|
}
|
|
103
101
|
// Check special properties
|
|
104
102
|
let symbol = Symbol.iterator;
|
|
@@ -107,7 +105,7 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
107
105
|
valueNodes.push(
|
|
108
106
|
createIteratorFactoryInstanceNode(
|
|
109
107
|
this.parseIteratorFactory(),
|
|
110
|
-
await this.
|
|
108
|
+
await this.parseTop(
|
|
111
109
|
iteratorToSequence(properties as unknown as Iterable<unknown>),
|
|
112
110
|
),
|
|
113
111
|
),
|
|
@@ -119,7 +117,7 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
119
117
|
valueNodes.push(
|
|
120
118
|
createAsyncIteratorFactoryInstanceNode(
|
|
121
119
|
this.parseAsyncIteratorFactory(),
|
|
122
|
-
await this.
|
|
120
|
+
await this.parseTop(
|
|
123
121
|
createStreamFromAsyncIterable(
|
|
124
122
|
properties as unknown as AsyncIterable<unknown>,
|
|
125
123
|
),
|
|
@@ -161,14 +159,18 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
161
159
|
id: number,
|
|
162
160
|
current: object,
|
|
163
161
|
): Promise<SerovalBoxedNode> {
|
|
164
|
-
return createBoxedNode(id, await this.
|
|
162
|
+
return createBoxedNode(id, await this.parseTop(current.valueOf()));
|
|
165
163
|
}
|
|
166
164
|
|
|
167
165
|
private async parseTypedArray(
|
|
168
166
|
id: number,
|
|
169
167
|
current: TypedArrayValue,
|
|
170
168
|
): Promise<SerovalTypedArrayNode> {
|
|
171
|
-
return createTypedArrayNode(
|
|
169
|
+
return createTypedArrayNode(
|
|
170
|
+
id,
|
|
171
|
+
current,
|
|
172
|
+
await this.parseTop(current.buffer),
|
|
173
|
+
);
|
|
172
174
|
}
|
|
173
175
|
|
|
174
176
|
private async parseBigIntTypedArray(
|
|
@@ -178,7 +180,7 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
178
180
|
return createBigIntTypedArrayNode(
|
|
179
181
|
id,
|
|
180
182
|
current,
|
|
181
|
-
await this.
|
|
183
|
+
await this.parseTop(current.buffer),
|
|
182
184
|
);
|
|
183
185
|
}
|
|
184
186
|
|
|
@@ -186,7 +188,7 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
186
188
|
id: number,
|
|
187
189
|
current: DataView,
|
|
188
190
|
): Promise<SerovalDataViewNode> {
|
|
189
|
-
return createDataViewNode(id, current, await this.
|
|
191
|
+
return createDataViewNode(id, current, await this.parseTop(current.buffer));
|
|
190
192
|
}
|
|
191
193
|
|
|
192
194
|
private async parseError(
|
|
@@ -220,8 +222,8 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
220
222
|
const keyNodes: SerovalNode[] = [];
|
|
221
223
|
const valueNodes: SerovalNode[] = [];
|
|
222
224
|
for (const [key, value] of current.entries()) {
|
|
223
|
-
keyNodes.push(await this.
|
|
224
|
-
valueNodes.push(await this.
|
|
225
|
+
keyNodes.push(await this.parseTop(key));
|
|
226
|
+
valueNodes.push(await this.parseTop(value));
|
|
225
227
|
}
|
|
226
228
|
return this.createMapNode(id, keyNodes, valueNodes, current.size);
|
|
227
229
|
}
|
|
@@ -232,7 +234,7 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
232
234
|
): Promise<SerovalSetNode> {
|
|
233
235
|
const items: SerovalNode[] = [];
|
|
234
236
|
for (const item of current.keys()) {
|
|
235
|
-
items.push(await this.
|
|
237
|
+
items.push(await this.parseTop(item));
|
|
236
238
|
}
|
|
237
239
|
return createSetNode(id, current.size, items);
|
|
238
240
|
}
|
|
@@ -253,7 +255,7 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
253
255
|
NIL,
|
|
254
256
|
NIL,
|
|
255
257
|
NIL,
|
|
256
|
-
await this.
|
|
258
|
+
await this.parseTop(result),
|
|
257
259
|
NIL,
|
|
258
260
|
NIL,
|
|
259
261
|
);
|
|
@@ -293,7 +295,7 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
293
295
|
const cleanup = current.on({
|
|
294
296
|
next: value => {
|
|
295
297
|
this.markRef(id);
|
|
296
|
-
this.
|
|
298
|
+
this.parseTop(value).then(
|
|
297
299
|
data => {
|
|
298
300
|
sequence.push(createStreamNextNode(id, data));
|
|
299
301
|
},
|
|
@@ -305,7 +307,7 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
305
307
|
},
|
|
306
308
|
throw: value => {
|
|
307
309
|
this.markRef(id);
|
|
308
|
-
this.
|
|
310
|
+
this.parseTop(value).then(
|
|
309
311
|
data => {
|
|
310
312
|
sequence.push(createStreamThrowNode(id, data));
|
|
311
313
|
resolve(sequence);
|
|
@@ -319,7 +321,7 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
319
321
|
},
|
|
320
322
|
return: value => {
|
|
321
323
|
this.markRef(id);
|
|
322
|
-
this.
|
|
324
|
+
this.parseTop(value).then(
|
|
323
325
|
data => {
|
|
324
326
|
sequence.push(createStreamReturnNode(id, data));
|
|
325
327
|
resolve(sequence);
|
|
@@ -336,36 +338,6 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
336
338
|
);
|
|
337
339
|
}
|
|
338
340
|
|
|
339
|
-
private async parseAbortSignalSync(
|
|
340
|
-
id: number,
|
|
341
|
-
current: AbortSignal,
|
|
342
|
-
): Promise<SerovalAbortSignalSyncNode> {
|
|
343
|
-
return createSerovalNode(
|
|
344
|
-
SerovalNodeType.AbortSignalSync,
|
|
345
|
-
id,
|
|
346
|
-
NIL,
|
|
347
|
-
NIL,
|
|
348
|
-
NIL,
|
|
349
|
-
NIL,
|
|
350
|
-
NIL,
|
|
351
|
-
NIL,
|
|
352
|
-
NIL,
|
|
353
|
-
await this.parse(current.reason),
|
|
354
|
-
NIL,
|
|
355
|
-
NIL,
|
|
356
|
-
);
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
private async parseAbortSignal(
|
|
360
|
-
id: number,
|
|
361
|
-
current: AbortSignal,
|
|
362
|
-
): Promise<SerovalAbortSignalSyncNode> {
|
|
363
|
-
if (!current.aborted) {
|
|
364
|
-
await abortSignalToPromise(current);
|
|
365
|
-
}
|
|
366
|
-
return this.parseAbortSignalSync(id, current);
|
|
367
|
-
}
|
|
368
|
-
|
|
369
341
|
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: ehh
|
|
370
342
|
private async parseObject(id: number, current: object): Promise<SerovalNode> {
|
|
371
343
|
if (Array.isArray(current)) {
|
|
@@ -376,7 +348,7 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
376
348
|
}
|
|
377
349
|
const currentClass = current.constructor;
|
|
378
350
|
if (currentClass === OpaqueReference) {
|
|
379
|
-
return this.
|
|
351
|
+
return this.parseTop(
|
|
380
352
|
(current as OpaqueReference<unknown, unknown>).replacement,
|
|
381
353
|
);
|
|
382
354
|
}
|
|
@@ -440,13 +412,6 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
440
412
|
return this.parsePromise(id, current as unknown as Promise<unknown>);
|
|
441
413
|
}
|
|
442
414
|
const currentFeatures = this.features;
|
|
443
|
-
if (
|
|
444
|
-
currentFeatures & Feature.AbortSignal &&
|
|
445
|
-
typeof AbortSignal !== 'undefined' &&
|
|
446
|
-
currentClass === AbortSignal
|
|
447
|
-
) {
|
|
448
|
-
return this.parseAbortSignal(id, current as unknown as AbortSignal);
|
|
449
|
-
}
|
|
450
415
|
// BigInt Typed Arrays
|
|
451
416
|
if (currentFeatures & Feature.BigIntTypedArray) {
|
|
452
417
|
switch (currentClass) {
|
|
@@ -492,37 +457,43 @@ export default abstract class BaseAsyncParserContext extends BaseParserContext {
|
|
|
492
457
|
throw new SerovalUnsupportedTypeError(current);
|
|
493
458
|
}
|
|
494
459
|
|
|
495
|
-
async
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
: ref.value;
|
|
514
|
-
}
|
|
515
|
-
return NULL_NODE;
|
|
460
|
+
async parseTop<T>(current: T): Promise<SerovalNode> {
|
|
461
|
+
switch (typeof current) {
|
|
462
|
+
case 'boolean':
|
|
463
|
+
return current ? TRUE_NODE : FALSE_NODE;
|
|
464
|
+
case 'undefined':
|
|
465
|
+
return UNDEFINED_NODE;
|
|
466
|
+
case 'string':
|
|
467
|
+
return createStringNode(current as string);
|
|
468
|
+
case 'number':
|
|
469
|
+
return createNumberNode(current as number);
|
|
470
|
+
case 'bigint':
|
|
471
|
+
return createBigIntNode(current as bigint);
|
|
472
|
+
case 'object': {
|
|
473
|
+
if (current) {
|
|
474
|
+
const ref = this.getReference(current);
|
|
475
|
+
return ref.type === 0
|
|
476
|
+
? await this.parseObject(ref.value, current as object)
|
|
477
|
+
: ref.value;
|
|
516
478
|
}
|
|
517
|
-
|
|
518
|
-
return this.parseWellKnownSymbol(current);
|
|
519
|
-
case 'function':
|
|
520
|
-
return this.parseFunction(current);
|
|
521
|
-
default:
|
|
522
|
-
throw new SerovalUnsupportedTypeError(current);
|
|
479
|
+
return NULL_NODE;
|
|
523
480
|
}
|
|
481
|
+
case 'symbol':
|
|
482
|
+
return this.parseWellKnownSymbol(current);
|
|
483
|
+
case 'function':
|
|
484
|
+
return this.parseFunction(current);
|
|
485
|
+
default:
|
|
486
|
+
throw new SerovalUnsupportedTypeError(current);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
async parse<T>(current: T): Promise<SerovalNode> {
|
|
491
|
+
try {
|
|
492
|
+
return await this.parseTop(current);
|
|
524
493
|
} catch (error) {
|
|
525
|
-
throw
|
|
494
|
+
throw error instanceof SerovalParserError
|
|
495
|
+
? error
|
|
496
|
+
: new SerovalParserError(error);
|
|
526
497
|
}
|
|
527
498
|
}
|
|
528
499
|
}
|