seroval 1.4.0 → 1.4.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/dist/cjs/development/index.cjs +524 -364
- package/dist/cjs/development/index.cjs.map +3 -3
- package/dist/cjs/production/index.cjs +3 -3
- package/dist/esm/development/index.mjs +524 -364
- package/dist/esm/development/index.mjs.map +3 -3
- package/dist/esm/production/index.mjs +3 -3
- package/dist/types/core/base-primitives.d.ts +2 -2
- package/dist/types/core/base-primitives.d.ts.map +1 -1
- package/dist/types/core/compat.d.ts +2 -1
- package/dist/types/core/compat.d.ts.map +1 -1
- package/dist/types/core/constants.d.ts +2 -2
- package/dist/types/core/constants.d.ts.map +1 -1
- package/dist/types/core/constructors.d.ts +1 -1
- package/dist/types/core/constructors.d.ts.map +1 -1
- package/dist/types/core/context/async-parser.d.ts +5 -4
- package/dist/types/core/context/async-parser.d.ts.map +1 -1
- package/dist/types/core/context/deserializer.d.ts +7 -2
- package/dist/types/core/context/deserializer.d.ts.map +1 -1
- package/dist/types/core/context/parser.d.ts +3 -1
- package/dist/types/core/context/parser.d.ts.map +1 -1
- package/dist/types/core/context/serializer.d.ts.map +1 -1
- package/dist/types/core/context/sync-parser.d.ts +5 -5
- package/dist/types/core/context/sync-parser.d.ts.map +1 -1
- package/dist/types/core/cross/index.d.ts.map +1 -1
- package/dist/types/core/errors.d.ts +9 -0
- package/dist/types/core/errors.d.ts.map +1 -1
- package/dist/types/core/literals.d.ts.map +1 -1
- package/dist/types/core/node.d.ts +1 -1
- package/dist/types/core/node.d.ts.map +1 -1
- package/dist/types/core/string.d.ts.map +1 -1
- package/dist/types/core/tree/index.d.ts +4 -1
- package/dist/types/core/tree/index.d.ts.map +1 -1
- package/dist/types/core/types.d.ts +2 -11
- package/dist/types/core/types.d.ts.map +1 -1
- package/package.json +2 -3
- package/src/core/Serializer.ts +0 -119
- package/src/core/base-primitives.ts +0 -515
- package/src/core/compat.ts +0 -21
- package/src/core/constants.ts +0 -187
- package/src/core/constructors.ts +0 -269
- package/src/core/context/async-parser.ts +0 -586
- package/src/core/context/deserializer.ts +0 -646
- package/src/core/context/parser.ts +0 -333
- package/src/core/context/serializer.ts +0 -1411
- package/src/core/context/sync-parser.ts +0 -833
- package/src/core/cross/index.ts +0 -186
- package/src/core/errors.ts +0 -163
- package/src/core/function-string.ts +0 -32
- package/src/core/keys.ts +0 -17
- package/src/core/literals.ts +0 -43
- package/src/core/node.ts +0 -40
- package/src/core/opaque-reference.ts +0 -9
- package/src/core/plugin.ts +0 -100
- package/src/core/reference.ts +0 -66
- package/src/core/special-reference.ts +0 -42
- package/src/core/stream.ts +0 -71
- package/src/core/string.ts +0 -84
- package/src/core/symbols.ts +0 -18
- package/src/core/tree/index.ts +0 -125
- package/src/core/types.ts +0 -375
- package/src/core/utils/error.ts +0 -73
- package/src/core/utils/get-identifier.ts +0 -18
- package/src/core/utils/get-object-flag.ts +0 -14
- package/src/core/utils/is-valid-identifier.ts +0 -12
- package/src/core/utils/iterator-to-sequence.ts +0 -44
- package/src/core/utils/promise-to-result.ts +0 -9
- package/src/core/utils/typed-array.ts +0 -56
- package/src/index.ts +0 -36
|
@@ -4,12 +4,11 @@ export interface SerovalBaseNode {
|
|
|
4
4
|
t: SerovalNodeType;
|
|
5
5
|
i: number | undefined;
|
|
6
6
|
s: unknown;
|
|
7
|
-
l: number | undefined;
|
|
8
7
|
c: string | undefined;
|
|
9
8
|
m: string | undefined;
|
|
10
9
|
p: SerovalObjectRecordNode | undefined;
|
|
11
10
|
e: SerovalMapRecordNode | undefined;
|
|
12
|
-
a: (SerovalNode |
|
|
11
|
+
a: (SerovalNode | 0)[] | undefined;
|
|
13
12
|
f: SerovalNode | undefined;
|
|
14
13
|
b: number | undefined;
|
|
15
14
|
o: SerovalObjectFlags | undefined;
|
|
@@ -18,12 +17,10 @@ export type SerovalObjectRecordKey = string | SerovalNode;
|
|
|
18
17
|
export interface SerovalObjectRecordNode {
|
|
19
18
|
k: SerovalObjectRecordKey[];
|
|
20
19
|
v: SerovalNode[];
|
|
21
|
-
s: number;
|
|
22
20
|
}
|
|
23
21
|
export interface SerovalMapRecordNode {
|
|
24
22
|
k: SerovalNode[];
|
|
25
23
|
v: SerovalNode[];
|
|
26
|
-
s: number;
|
|
27
24
|
}
|
|
28
25
|
export interface SerovalNumberNode extends SerovalBaseNode {
|
|
29
26
|
t: SerovalNodeType.Number;
|
|
@@ -61,13 +58,11 @@ export interface SerovalArrayBufferNode extends SerovalBaseNode {
|
|
|
61
58
|
t: SerovalNodeType.ArrayBuffer;
|
|
62
59
|
i: number;
|
|
63
60
|
s: string;
|
|
64
|
-
l: number;
|
|
65
61
|
f: SerovalNodeWithID;
|
|
66
62
|
}
|
|
67
63
|
export interface SerovalTypedArrayNode extends SerovalBaseNode {
|
|
68
64
|
t: SerovalNodeType.TypedArray;
|
|
69
65
|
i: number;
|
|
70
|
-
l: number;
|
|
71
66
|
c: string;
|
|
72
67
|
f: SerovalNode;
|
|
73
68
|
b: number;
|
|
@@ -75,7 +70,6 @@ export interface SerovalTypedArrayNode extends SerovalBaseNode {
|
|
|
75
70
|
export interface SerovalBigIntTypedArrayNode extends SerovalBaseNode {
|
|
76
71
|
t: SerovalNodeType.BigIntTypedArray;
|
|
77
72
|
i: number;
|
|
78
|
-
l: number;
|
|
79
73
|
c: string;
|
|
80
74
|
f: SerovalNode;
|
|
81
75
|
b: number;
|
|
@@ -84,7 +78,6 @@ export type SerovalSemiPrimitiveNode = SerovalBigIntNode | SerovalDateNode | Ser
|
|
|
84
78
|
export interface SerovalSetNode extends SerovalBaseNode {
|
|
85
79
|
t: SerovalNodeType.Set;
|
|
86
80
|
i: number;
|
|
87
|
-
l: number;
|
|
88
81
|
a: SerovalNode[];
|
|
89
82
|
}
|
|
90
83
|
export interface SerovalMapNode extends SerovalBaseNode {
|
|
@@ -95,8 +88,7 @@ export interface SerovalMapNode extends SerovalBaseNode {
|
|
|
95
88
|
}
|
|
96
89
|
export interface SerovalArrayNode extends SerovalBaseNode {
|
|
97
90
|
t: SerovalNodeType.Array;
|
|
98
|
-
|
|
99
|
-
a: (SerovalNode | undefined)[];
|
|
91
|
+
a: (SerovalNode | 0)[];
|
|
100
92
|
i: number;
|
|
101
93
|
o: SerovalObjectFlags;
|
|
102
94
|
}
|
|
@@ -144,7 +136,6 @@ export interface SerovalReferenceNode extends SerovalBaseNode {
|
|
|
144
136
|
export interface SerovalDataViewNode extends SerovalBaseNode {
|
|
145
137
|
t: SerovalNodeType.DataView;
|
|
146
138
|
i: number;
|
|
147
|
-
l: number;
|
|
148
139
|
f: SerovalNode;
|
|
149
140
|
b: number;
|
|
150
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,OAAO,EACR,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,WAAW,eAAe;IAE9B,CAAC,EAAE,eAAe,CAAC;IAEnB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtB,CAAC,EAAE,OAAO,CAAC;IAEX,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtB,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/core/Serializer.ts
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { crossSerializeStream } from './cross';
|
|
2
|
-
import {
|
|
3
|
-
resolvePlugins,
|
|
4
|
-
type Plugin,
|
|
5
|
-
type PluginAccessOptions,
|
|
6
|
-
} from './plugin';
|
|
7
|
-
import { serializeString } from './string';
|
|
8
|
-
|
|
9
|
-
export interface SerializerOptions extends PluginAccessOptions {
|
|
10
|
-
globalIdentifier: string;
|
|
11
|
-
scopeId?: string;
|
|
12
|
-
disabledFeatures?: number;
|
|
13
|
-
onData: (result: string) => void;
|
|
14
|
-
onError: (error: unknown) => void;
|
|
15
|
-
onDone?: () => void;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export default class Serializer {
|
|
19
|
-
private alive = true;
|
|
20
|
-
|
|
21
|
-
private flushed = false;
|
|
22
|
-
|
|
23
|
-
private done = false;
|
|
24
|
-
|
|
25
|
-
private pending = 0;
|
|
26
|
-
|
|
27
|
-
private cleanups: (() => void)[] = [];
|
|
28
|
-
|
|
29
|
-
private refs = new Map<unknown, number>();
|
|
30
|
-
|
|
31
|
-
private plugins?: Plugin<any, any>[];
|
|
32
|
-
|
|
33
|
-
constructor(private options: SerializerOptions) {
|
|
34
|
-
this.plugins = resolvePlugins(options.plugins);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
keys = new Set<string>();
|
|
38
|
-
|
|
39
|
-
write(key: string, value: unknown): void {
|
|
40
|
-
if (this.alive && !this.flushed) {
|
|
41
|
-
this.pending++;
|
|
42
|
-
this.keys.add(key);
|
|
43
|
-
this.cleanups.push(
|
|
44
|
-
crossSerializeStream(value, {
|
|
45
|
-
plugins: this.plugins,
|
|
46
|
-
scopeId: this.options.scopeId,
|
|
47
|
-
refs: this.refs,
|
|
48
|
-
disabledFeatures: this.options.disabledFeatures,
|
|
49
|
-
onError: this.options.onError,
|
|
50
|
-
onSerialize: (data, initial) => {
|
|
51
|
-
if (this.alive) {
|
|
52
|
-
this.options.onData(
|
|
53
|
-
initial
|
|
54
|
-
? this.options.globalIdentifier +
|
|
55
|
-
'["' +
|
|
56
|
-
serializeString(key) +
|
|
57
|
-
'"]=' +
|
|
58
|
-
data
|
|
59
|
-
: data,
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
onDone: () => {
|
|
64
|
-
if (this.alive) {
|
|
65
|
-
this.pending--;
|
|
66
|
-
if (
|
|
67
|
-
this.pending <= 0 &&
|
|
68
|
-
this.flushed &&
|
|
69
|
-
!this.done &&
|
|
70
|
-
this.options.onDone
|
|
71
|
-
) {
|
|
72
|
-
this.options.onDone();
|
|
73
|
-
this.done = true;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
}),
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
ids = 0;
|
|
83
|
-
|
|
84
|
-
private getNextID(): string {
|
|
85
|
-
while (this.keys.has('' + this.ids)) {
|
|
86
|
-
this.ids++;
|
|
87
|
-
}
|
|
88
|
-
return '' + this.ids;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
push(value: unknown): string {
|
|
92
|
-
const newID = this.getNextID();
|
|
93
|
-
this.write(newID, value);
|
|
94
|
-
return newID;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
flush(): void {
|
|
98
|
-
if (this.alive) {
|
|
99
|
-
this.flushed = true;
|
|
100
|
-
if (this.pending <= 0 && !this.done && this.options.onDone) {
|
|
101
|
-
this.options.onDone();
|
|
102
|
-
this.done = true;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
close(): void {
|
|
108
|
-
if (this.alive) {
|
|
109
|
-
for (let i = 0, len = this.cleanups.length; i < len; i++) {
|
|
110
|
-
this.cleanups[i]();
|
|
111
|
-
}
|
|
112
|
-
if (!this.done && this.options.onDone) {
|
|
113
|
-
this.options.onDone();
|
|
114
|
-
this.done = true;
|
|
115
|
-
}
|
|
116
|
-
this.alive = false;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|