seroval 1.5.5 → 1.6.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.
Files changed (111) hide show
  1. package/dist/index.d.ts +761 -0
  2. package/dist/index.js +2928 -0
  3. package/package.json +14 -23
  4. package/dist/cjs/development/index.cjs +0 -4230
  5. package/dist/cjs/development/index.cjs.map +0 -7
  6. package/dist/cjs/production/index.cjs +0 -3
  7. package/dist/esm/development/index.mjs +0 -4207
  8. package/dist/esm/development/index.mjs.map +0 -7
  9. package/dist/esm/production/index.mjs +0 -3
  10. package/dist/types/core/Serializer.d.ts +0 -28
  11. package/dist/types/core/Serializer.d.ts.map +0 -1
  12. package/dist/types/core/base-primitives.d.ts +0 -28
  13. package/dist/types/core/base-primitives.d.ts.map +0 -1
  14. package/dist/types/core/compat.d.ts +0 -15
  15. package/dist/types/core/compat.d.ts.map +0 -1
  16. package/dist/types/core/constants.d.ts +0 -105
  17. package/dist/types/core/constants.d.ts.map +0 -1
  18. package/dist/types/core/constructors.d.ts +0 -50
  19. package/dist/types/core/constructors.d.ts.map +0 -1
  20. package/dist/types/core/context/async-parser.d.ts +0 -20
  21. package/dist/types/core/context/async-parser.d.ts.map +0 -1
  22. package/dist/types/core/context/deserializer.d.ts +0 -52
  23. package/dist/types/core/context/deserializer.d.ts.map +0 -1
  24. package/dist/types/core/context/parser.d.ts +0 -62
  25. package/dist/types/core/context/parser.d.ts.map +0 -1
  26. package/dist/types/core/context/serializer.d.ts +0 -103
  27. package/dist/types/core/context/serializer.d.ts.map +0 -1
  28. package/dist/types/core/context/sync-parser.d.ts +0 -61
  29. package/dist/types/core/context/sync-parser.d.ts.map +0 -1
  30. package/dist/types/core/cross/index.d.ts +0 -24
  31. package/dist/types/core/cross/index.d.ts.map +0 -1
  32. package/dist/types/core/errors.d.ts +0 -47
  33. package/dist/types/core/errors.d.ts.map +0 -1
  34. package/dist/types/core/function-string.d.ts +0 -3
  35. package/dist/types/core/function-string.d.ts.map +0 -1
  36. package/dist/types/core/keys.d.ts +0 -4
  37. package/dist/types/core/keys.d.ts.map +0 -1
  38. package/dist/types/core/literals.d.ts +0 -10
  39. package/dist/types/core/literals.d.ts.map +0 -1
  40. package/dist/types/core/node.d.ts +0 -8
  41. package/dist/types/core/node.d.ts.map +0 -1
  42. package/dist/types/core/opaque-reference.d.ts +0 -9
  43. package/dist/types/core/opaque-reference.d.ts.map +0 -1
  44. package/dist/types/core/plugin.d.ts +0 -52
  45. package/dist/types/core/plugin.d.ts.map +0 -1
  46. package/dist/types/core/reference.d.ts +0 -6
  47. package/dist/types/core/reference.d.ts.map +0 -1
  48. package/dist/types/core/sequence.d.ts +0 -11
  49. package/dist/types/core/sequence.d.ts.map +0 -1
  50. package/dist/types/core/special-reference.d.ts +0 -16
  51. package/dist/types/core/special-reference.d.ts.map +0 -1
  52. package/dist/types/core/stream.d.ts +0 -17
  53. package/dist/types/core/stream.d.ts.map +0 -1
  54. package/dist/types/core/string.d.ts +0 -4
  55. package/dist/types/core/string.d.ts.map +0 -1
  56. package/dist/types/core/symbols.d.ts +0 -14
  57. package/dist/types/core/symbols.d.ts.map +0 -1
  58. package/dist/types/core/tree/index.d.ts +0 -21
  59. package/dist/types/core/tree/index.d.ts.map +0 -1
  60. package/dist/types/core/types.d.ts +0 -233
  61. package/dist/types/core/types.d.ts.map +0 -1
  62. package/dist/types/core/utils/error.d.ts +0 -6
  63. package/dist/types/core/utils/error.d.ts.map +0 -1
  64. package/dist/types/core/utils/get-identifier.d.ts +0 -2
  65. package/dist/types/core/utils/get-identifier.d.ts.map +0 -1
  66. package/dist/types/core/utils/get-object-flag.d.ts +0 -3
  67. package/dist/types/core/utils/get-object-flag.d.ts.map +0 -1
  68. package/dist/types/core/utils/is-valid-identifier.d.ts +0 -2
  69. package/dist/types/core/utils/is-valid-identifier.d.ts.map +0 -1
  70. package/dist/types/core/utils/promise-to-result.d.ts +0 -2
  71. package/dist/types/core/utils/promise-to-result.d.ts.map +0 -1
  72. package/dist/types/core/utils/typed-array.d.ts +0 -6
  73. package/dist/types/core/utils/typed-array.d.ts.map +0 -1
  74. package/dist/types/core/utils/valid-properties.d.ts +0 -3
  75. package/dist/types/core/utils/valid-properties.d.ts.map +0 -1
  76. package/dist/types/index.d.ts +0 -18
  77. package/dist/types/index.d.ts.map +0 -1
  78. package/src/core/Serializer.ts +0 -119
  79. package/src/core/base-primitives.ts +0 -537
  80. package/src/core/compat.ts +0 -23
  81. package/src/core/constants.ts +0 -202
  82. package/src/core/constructors.ts +0 -265
  83. package/src/core/context/async-parser.ts +0 -663
  84. package/src/core/context/deserializer.ts +0 -832
  85. package/src/core/context/parser.ts +0 -335
  86. package/src/core/context/serializer.ts +0 -1524
  87. package/src/core/context/sync-parser.ts +0 -943
  88. package/src/core/cross/index.ts +0 -190
  89. package/src/core/errors.ts +0 -196
  90. package/src/core/function-string.ts +0 -31
  91. package/src/core/keys.ts +0 -17
  92. package/src/core/literals.ts +0 -43
  93. package/src/core/node.ts +0 -40
  94. package/src/core/opaque-reference.ts +0 -9
  95. package/src/core/plugin.ts +0 -105
  96. package/src/core/reference.ts +0 -66
  97. package/src/core/sequence.ts +0 -59
  98. package/src/core/special-reference.ts +0 -42
  99. package/src/core/stream.ts +0 -71
  100. package/src/core/string.ts +0 -86
  101. package/src/core/symbols.ts +0 -20
  102. package/src/core/tree/index.ts +0 -134
  103. package/src/core/types.ts +0 -377
  104. package/src/core/utils/error.ts +0 -73
  105. package/src/core/utils/get-identifier.ts +0 -18
  106. package/src/core/utils/get-object-flag.ts +0 -14
  107. package/src/core/utils/is-valid-identifier.ts +0 -12
  108. package/src/core/utils/promise-to-result.ts +0 -9
  109. package/src/core/utils/typed-array.ts +0 -56
  110. package/src/core/utils/valid-properties.ts +0 -34
  111. package/src/index.ts +0 -36
package/src/core/types.ts DELETED
@@ -1,377 +0,0 @@
1
- import type {
2
- ErrorConstructorTag,
3
- SerovalConstant,
4
- SerovalNodeType,
5
- SerovalObjectFlags,
6
- Symbols,
7
- } from './constants';
8
- import type { SpecialReference } from './special-reference';
9
-
10
- export interface SerovalBaseNode {
11
- // Type of the node
12
- t: SerovalNodeType;
13
- // Reference ID
14
- i: number | undefined;
15
- // Serialized value
16
- s: unknown;
17
- // Constructor name / RegExp source
18
- c: string | undefined;
19
- // message/flags
20
- m: string | undefined;
21
- // properties (objects)
22
- p: SerovalObjectRecordNode | undefined;
23
- // entries (for Map, etc.)
24
- e: SerovalMapRecordNode | undefined;
25
- // array of nodes
26
- a: (SerovalNode | 0)[] | undefined;
27
- // fulfilled node
28
- f: SerovalNode | undefined;
29
- // byte offset/object flags
30
- b: number | undefined;
31
- // object flag
32
- o: SerovalObjectFlags | undefined;
33
- // length
34
- l: number | undefined;
35
- }
36
-
37
- export type SerovalObjectRecordKey = string | SerovalNode;
38
-
39
- export interface SerovalObjectRecordNode {
40
- k: SerovalObjectRecordKey[];
41
- v: SerovalNode[];
42
- }
43
-
44
- export interface SerovalMapRecordNode {
45
- k: SerovalNode[];
46
- v: SerovalNode[];
47
- }
48
-
49
- export interface SerovalNumberNode extends SerovalBaseNode {
50
- t: SerovalNodeType.Number;
51
- s: number;
52
- }
53
-
54
- export interface SerovalStringNode extends SerovalBaseNode {
55
- t: SerovalNodeType.String;
56
- s: string;
57
- }
58
-
59
- export interface SerovalConstantNode extends SerovalBaseNode {
60
- t: SerovalNodeType.Constant;
61
- s: SerovalConstant;
62
- }
63
-
64
- export type SerovalPrimitiveNode =
65
- | SerovalNumberNode
66
- | SerovalStringNode
67
- | SerovalConstantNode;
68
-
69
- export interface SerovalIndexedValueNode extends SerovalBaseNode {
70
- t: SerovalNodeType.IndexedValue;
71
- // id
72
- i: number;
73
- }
74
-
75
- export interface SerovalBigIntNode extends SerovalBaseNode {
76
- t: SerovalNodeType.BigInt;
77
- // value in string
78
- s: string;
79
- }
80
-
81
- export interface SerovalDateNode extends SerovalBaseNode {
82
- t: SerovalNodeType.Date;
83
- // id (Dates are stateful)
84
- i: number;
85
- // value in ISO string
86
- s: string;
87
- }
88
-
89
- export interface SerovalRegExpNode extends SerovalBaseNode {
90
- t: SerovalNodeType.RegExp;
91
- // id (RegExp are stateful)
92
- i: number;
93
- // source
94
- c: string;
95
- // flags
96
- m: string;
97
- }
98
-
99
- export interface SerovalArrayBufferNode extends SerovalBaseNode {
100
- t: SerovalNodeType.ArrayBuffer;
101
- // id
102
- i: number;
103
- // byte string
104
- s: string;
105
- // array buffer constructor
106
- f: SerovalNodeWithID;
107
- }
108
-
109
- export interface SerovalTypedArrayNode extends SerovalBaseNode {
110
- t: SerovalNodeType.TypedArray;
111
- // id
112
- i: number;
113
- // TypedArray Constructor
114
- c: string;
115
- // ArrayBuffer reference
116
- f: SerovalNode;
117
- // Byte Offset
118
- b: number;
119
- // length
120
- l: number;
121
- }
122
-
123
- export interface SerovalBigIntTypedArrayNode extends SerovalBaseNode {
124
- t: SerovalNodeType.BigIntTypedArray;
125
- i: number;
126
- // TypedArray Constructor
127
- c: string;
128
- // ArrayBuffer reference
129
- f: SerovalNode;
130
- // Byte Offset
131
- b: number;
132
- // length
133
- l: number;
134
- }
135
-
136
- export type SerovalSemiPrimitiveNode =
137
- | SerovalBigIntNode
138
- | SerovalDateNode
139
- | SerovalRegExpNode
140
- | SerovalTypedArrayNode
141
- | SerovalBigIntTypedArrayNode;
142
-
143
- export interface SerovalSetNode extends SerovalBaseNode {
144
- t: SerovalNodeType.Set;
145
- // id
146
- i: number;
147
- // Items in Set (as array)
148
- a: SerovalNode[];
149
- }
150
-
151
- export interface SerovalMapNode extends SerovalBaseNode {
152
- t: SerovalNodeType.Map;
153
- i: number;
154
- // key/value pairs
155
- e: SerovalMapRecordNode;
156
- f: SerovalNodeWithID;
157
- }
158
-
159
- export interface SerovalArrayNode extends SerovalBaseNode {
160
- t: SerovalNodeType.Array;
161
- // items
162
- a: (SerovalNode | 0)[];
163
- i: number;
164
- o: SerovalObjectFlags;
165
- }
166
-
167
- export interface SerovalObjectNode extends SerovalBaseNode {
168
- t: SerovalNodeType.Object;
169
- // key/value pairs
170
- p: SerovalObjectRecordNode;
171
- i: number;
172
- o: SerovalObjectFlags;
173
- }
174
-
175
- export interface SerovalNullConstructorNode extends SerovalBaseNode {
176
- t: SerovalNodeType.NullConstructor;
177
- // key/value pairs
178
- p: SerovalObjectRecordNode;
179
- i: number;
180
- o: SerovalObjectFlags;
181
- }
182
-
183
- export interface SerovalPromiseNode extends SerovalBaseNode {
184
- t: SerovalNodeType.Promise;
185
- s: 0 | 1;
186
- // resolved value
187
- f: SerovalNode;
188
- i: number;
189
- }
190
-
191
- export interface SerovalErrorNode extends SerovalBaseNode {
192
- t: SerovalNodeType.Error;
193
- // constructor name
194
- s: ErrorConstructorTag;
195
- // message
196
- m: string;
197
- // other properties
198
- p: SerovalObjectRecordNode | undefined;
199
- i: number;
200
- }
201
-
202
- export interface SerovalAggregateErrorNode extends SerovalBaseNode {
203
- t: SerovalNodeType.AggregateError;
204
- i: number;
205
- // message
206
- m: string;
207
- // other properties
208
- p: SerovalObjectRecordNode | undefined;
209
- }
210
-
211
- export interface SerovalWKSymbolNode extends SerovalBaseNode {
212
- t: SerovalNodeType.WKSymbol;
213
- i: number;
214
- s: Symbols;
215
- }
216
-
217
- export interface SerovalReferenceNode extends SerovalBaseNode {
218
- t: SerovalNodeType.Reference;
219
- i: number;
220
- // id of the reference in the map
221
- s: string;
222
- }
223
-
224
- export interface SerovalDataViewNode extends SerovalBaseNode {
225
- t: SerovalNodeType.DataView;
226
- i: number;
227
- // reference to array buffer
228
- f: SerovalNode;
229
- // byte offset
230
- b: number;
231
- // byte length
232
- l: number;
233
- }
234
-
235
- export interface SerovalBoxedNode extends SerovalBaseNode {
236
- t: SerovalNodeType.Boxed;
237
- i: number;
238
- f: SerovalNode;
239
- }
240
-
241
- export interface SerovalPromiseConstructorNode extends SerovalBaseNode {
242
- t: SerovalNodeType.PromiseConstructor;
243
- i: number;
244
- s: number;
245
- f: SerovalNodeWithID;
246
- }
247
-
248
- export interface SerovalPromiseResolveNode extends SerovalBaseNode {
249
- t: SerovalNodeType.PromiseSuccess;
250
- i: number;
251
- a: [resolver: SerovalNodeWithID, resolved: SerovalNode];
252
- }
253
-
254
- export interface SerovalPromiseRejectNode extends SerovalBaseNode {
255
- t: SerovalNodeType.PromiseFailure;
256
- i: number;
257
- a: [resolver: SerovalNodeWithID, resolved: SerovalNode];
258
- }
259
-
260
- export interface SerovalPluginNode extends SerovalBaseNode {
261
- t: SerovalNodeType.Plugin;
262
- i: number;
263
- // value
264
- s: Record<string, SerovalNode>;
265
- // tag name
266
- c: string;
267
- }
268
-
269
- /**
270
- * Represents special values as placeholders
271
- */
272
- export interface SerovalSpecialReferenceNode extends SerovalBaseNode {
273
- t: SerovalNodeType.SpecialReference;
274
- i: number;
275
- s: SpecialReference;
276
- }
277
-
278
- export interface SerovalIteratorFactoryNode extends SerovalBaseNode {
279
- t: SerovalNodeType.IteratorFactory;
280
- i: number;
281
- f: SerovalNodeWithID;
282
- }
283
-
284
- export interface SerovalIteratorFactoryInstanceNode extends SerovalBaseNode {
285
- t: SerovalNodeType.IteratorFactoryInstance;
286
- a: [instance: SerovalNodeWithID, sequence: SerovalNodeWithID];
287
- }
288
-
289
- export interface SerovalAsyncIteratorFactoryNode extends SerovalBaseNode {
290
- t: SerovalNodeType.AsyncIteratorFactory;
291
- i: number;
292
- a: [promise: SerovalNodeWithID, symbol: SerovalNodeWithID];
293
- }
294
-
295
- export interface SerovalAsyncIteratorFactoryInstanceNode
296
- extends SerovalBaseNode {
297
- t: SerovalNodeType.AsyncIteratorFactoryInstance;
298
- a: [instance: SerovalNodeWithID, sequence: SerovalNodeWithID];
299
- }
300
-
301
- export interface SerovalStreamConstructorNode extends SerovalBaseNode {
302
- t: SerovalNodeType.StreamConstructor;
303
- i: number;
304
- a: SerovalNode[];
305
- // special reference to the constructor
306
- f: SerovalNodeWithID;
307
- }
308
-
309
- export interface SerovalStreamNextNode extends SerovalBaseNode {
310
- t: SerovalNodeType.StreamNext;
311
- i: number;
312
- // Next value
313
- f: SerovalNode;
314
- }
315
-
316
- export interface SerovalStreamThrowNode extends SerovalBaseNode {
317
- t: SerovalNodeType.StreamThrow;
318
- i: number;
319
- // Throw value
320
- f: SerovalNode;
321
- }
322
-
323
- export interface SerovalStreamReturnNode extends SerovalBaseNode {
324
- t: SerovalNodeType.StreamReturn;
325
- i: number;
326
- // Return value
327
- f: SerovalNode;
328
- }
329
-
330
- export interface SerovalSequenceNode extends SerovalBaseNode {
331
- t: SerovalNodeType.Sequence;
332
- i: number;
333
- // Throw at
334
- s: number;
335
- a: SerovalNode[];
336
- // Done at
337
- l: number;
338
- }
339
-
340
- export type SerovalSyncNode =
341
- | SerovalPrimitiveNode
342
- | SerovalIndexedValueNode
343
- | SerovalSemiPrimitiveNode
344
- | SerovalSetNode
345
- | SerovalMapNode
346
- | SerovalArrayNode
347
- | SerovalObjectNode
348
- | SerovalNullConstructorNode
349
- | SerovalPromiseNode
350
- | SerovalErrorNode
351
- | SerovalAggregateErrorNode
352
- | SerovalWKSymbolNode
353
- | SerovalReferenceNode
354
- | SerovalArrayBufferNode
355
- | SerovalDataViewNode
356
- | SerovalBoxedNode
357
- | SerovalPluginNode
358
- | SerovalSpecialReferenceNode
359
- | SerovalIteratorFactoryNode
360
- | SerovalIteratorFactoryInstanceNode
361
- | SerovalAsyncIteratorFactoryNode
362
- | SerovalAsyncIteratorFactoryInstanceNode
363
- | SerovalSequenceNode;
364
-
365
- export type SerovalAsyncNode =
366
- | SerovalPromiseNode
367
- | SerovalPromiseConstructorNode
368
- | SerovalPromiseResolveNode
369
- | SerovalPromiseRejectNode
370
- | SerovalStreamConstructorNode
371
- | SerovalStreamNextNode
372
- | SerovalStreamThrowNode
373
- | SerovalStreamReturnNode;
374
-
375
- export type SerovalNode = SerovalSyncNode | SerovalAsyncNode;
376
-
377
- export type SerovalNodeWithID = Extract<SerovalNode, { i: number }>;
@@ -1,73 +0,0 @@
1
- import { Feature } from '../compat';
2
- import { ERROR_CONSTRUCTOR_STRING, ErrorConstructorTag } from '../constants';
3
-
4
- type ErrorValue =
5
- | Error
6
- | AggregateError
7
- | EvalError
8
- | RangeError
9
- | ReferenceError
10
- | TypeError
11
- | SyntaxError
12
- | URIError;
13
-
14
- export function getErrorConstructor(error: ErrorValue): ErrorConstructorTag {
15
- if (error instanceof EvalError) {
16
- return ErrorConstructorTag.EvalError;
17
- }
18
- if (error instanceof RangeError) {
19
- return ErrorConstructorTag.RangeError;
20
- }
21
- if (error instanceof ReferenceError) {
22
- return ErrorConstructorTag.ReferenceError;
23
- }
24
- if (error instanceof SyntaxError) {
25
- return ErrorConstructorTag.SyntaxError;
26
- }
27
- if (error instanceof TypeError) {
28
- return ErrorConstructorTag.TypeError;
29
- }
30
- if (error instanceof URIError) {
31
- return ErrorConstructorTag.URIError;
32
- }
33
- return ErrorConstructorTag.Error;
34
- }
35
-
36
- function getInitialErrorOptions(
37
- error: Error,
38
- ): Record<string, unknown> | undefined {
39
- const construct = ERROR_CONSTRUCTOR_STRING[getErrorConstructor(error)];
40
- // Name has been modified
41
- if (error.name !== construct) {
42
- return { name: error.name };
43
- }
44
- if (error.constructor.name !== construct) {
45
- // Otherwise, name is overriden because
46
- // the Error class is extended
47
- return { name: error.constructor.name };
48
- }
49
- return {};
50
- }
51
-
52
- export function getErrorOptions(
53
- error: Error,
54
- features: number,
55
- ): Record<string, unknown> | undefined {
56
- let options = getInitialErrorOptions(error);
57
- const names = Object.getOwnPropertyNames(error);
58
- for (let i = 0, len = names.length, name: string; i < len; i++) {
59
- name = names[i];
60
- if (name !== 'name' && name !== 'message') {
61
- if (name === 'stack') {
62
- if (features & Feature.ErrorPrototypeStack) {
63
- options = options || {};
64
- options[name] = error[name as keyof Error];
65
- }
66
- } else {
67
- options = options || {};
68
- options[name] = error[name as keyof Error];
69
- }
70
- }
71
- }
72
- return options;
73
- }
@@ -1,18 +0,0 @@
1
- // Written by https://github.com/DylanPiercey and is distributed under the MIT license.
2
- const REF_START_CHARS = /* @__PURE__ */ 'hjkmoquxzABCDEFGHIJKLNPQRTUVWXYZ$_'; // Avoids chars that could evaluate to a reserved word.
3
- const REF_START_CHARS_LEN = /* @__PURE__ */ REF_START_CHARS.length;
4
- const REF_CHARS =
5
- /* @__PURE__ */ 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$_';
6
- const REF_CHARS_LEN = /* @__PURE__ */ REF_CHARS.length;
7
-
8
- export default function getIdentifier(index: number): string {
9
- let mod = index % REF_START_CHARS_LEN;
10
- let ref = REF_START_CHARS[mod];
11
- index = (index - mod) / REF_START_CHARS_LEN;
12
- while (index > 0) {
13
- mod = index % REF_CHARS_LEN;
14
- ref += REF_CHARS[mod];
15
- index = (index - mod) / REF_CHARS_LEN;
16
- }
17
- return ref;
18
- }
@@ -1,14 +0,0 @@
1
- import { SerovalObjectFlags } from '../constants';
2
-
3
- export function getObjectFlag(obj: unknown): SerovalObjectFlags {
4
- if (Object.isFrozen(obj)) {
5
- return SerovalObjectFlags.Frozen;
6
- }
7
- if (Object.isSealed(obj)) {
8
- return SerovalObjectFlags.Sealed;
9
- }
10
- if (Object.isExtensible(obj)) {
11
- return SerovalObjectFlags.None;
12
- }
13
- return SerovalObjectFlags.NonExtensible;
14
- }
@@ -1,12 +0,0 @@
1
- const IDENTIFIER_CHECK = /^[$A-Z_][0-9A-Z_$]*$/i;
2
-
3
- export function isValidIdentifier(name: string): boolean {
4
- const char = name[0];
5
- return (
6
- (char === '$' ||
7
- char === '_' ||
8
- (char >= 'A' && char <= 'Z') ||
9
- (char >= 'a' && char <= 'z')) &&
10
- IDENTIFIER_CHECK.test(name)
11
- );
12
- }
@@ -1,9 +0,0 @@
1
- export default async function promiseToResult(
2
- current: Promise<unknown>,
3
- ): Promise<[0 | 1, unknown]> {
4
- try {
5
- return [1, await current];
6
- } catch (e) {
7
- return [0, e];
8
- }
9
- }
@@ -1,56 +0,0 @@
1
- import { SerovalUnknownTypedArrayError } from '../errors';
2
-
3
- type TypedArrayConstructor =
4
- | Int8ArrayConstructor
5
- | Int16ArrayConstructor
6
- | Int32ArrayConstructor
7
- | Uint8ArrayConstructor
8
- | Uint16ArrayConstructor
9
- | Uint32ArrayConstructor
10
- | Uint8ClampedArrayConstructor
11
- | Float32ArrayConstructor
12
- | Float64ArrayConstructor
13
- | BigInt64ArrayConstructor
14
- | BigUint64ArrayConstructor;
15
-
16
- export type TypedArrayValue =
17
- | Int8Array
18
- | Int16Array
19
- | Int32Array
20
- | Uint8Array
21
- | Uint16Array
22
- | Uint32Array
23
- | Uint8ClampedArray
24
- | Float32Array
25
- | Float64Array;
26
-
27
- export type BigIntTypedArrayValue = BigInt64Array | BigUint64Array;
28
-
29
- export function getTypedArrayConstructor(name: string): TypedArrayConstructor {
30
- switch (name) {
31
- case 'Int8Array':
32
- return Int8Array;
33
- case 'Int16Array':
34
- return Int16Array;
35
- case 'Int32Array':
36
- return Int32Array;
37
- case 'Uint8Array':
38
- return Uint8Array;
39
- case 'Uint16Array':
40
- return Uint16Array;
41
- case 'Uint32Array':
42
- return Uint32Array;
43
- case 'Uint8ClampedArray':
44
- return Uint8ClampedArray;
45
- case 'Float32Array':
46
- return Float32Array;
47
- case 'Float64Array':
48
- return Float64Array;
49
- case 'BigInt64Array':
50
- return BigInt64Array;
51
- case 'BigUint64Array':
52
- return BigUint64Array;
53
- default:
54
- throw new SerovalUnknownTypedArrayError(name);
55
- }
56
- }
@@ -1,34 +0,0 @@
1
- import {
2
- SYM_ASYNC_ITERATOR,
3
- SYM_IS_CONCAT_SPREADABLE,
4
- SYM_ITERATOR,
5
- SYM_TO_STRING_TAG,
6
- } from '../symbols';
7
-
8
- export function isValidKey(key: string): boolean {
9
- switch (key) {
10
- case 'constructor':
11
- case '__proto__':
12
- case 'prototype':
13
- case '__defineGetter__':
14
- case '__defineSetter__':
15
- case '__lookupGetter__':
16
- case '__lookupSetter__':
17
- // case 'then':
18
- return false;
19
- default:
20
- return true;
21
- }
22
- }
23
-
24
- export function isValidSymbol(symbol: symbol): boolean {
25
- switch (symbol) {
26
- case SYM_ASYNC_ITERATOR:
27
- case SYM_IS_CONCAT_SPREADABLE:
28
- case SYM_TO_STRING_TAG:
29
- case SYM_ITERATOR:
30
- return true;
31
- default:
32
- return false;
33
- }
34
- }
package/src/index.ts DELETED
@@ -1,36 +0,0 @@
1
- export { Feature } from './core/compat';
2
- export type {
3
- AsyncParsePluginContext,
4
- AsyncParserContextOptions,
5
- } from './core/context/async-parser';
6
- export type {
7
- BaseDeserializerContextOptions,
8
- CrossDeserializerContextOptions,
9
- DeserializePluginContext,
10
- VanillaDeserializerContextOptions,
11
- } from './core/context/deserializer';
12
- export type { BaseParserContextOptions } from './core/context/parser';
13
- export type {
14
- BaseSerializerContextOptions,
15
- CrossContextOptions,
16
- CrossSerializerContextOptions,
17
- SerializePluginContext,
18
- VanillaSerializerContextOptions,
19
- } from './core/context/serializer';
20
- export type {
21
- StreamParsePluginContext,
22
- StreamParserContextOptions,
23
- SyncParsePluginContext,
24
- SyncParserContextOptions,
25
- } from './core/context/sync-parser';
26
- export * from './core/cross';
27
- export * from './core/errors';
28
- export { getCrossReferenceHeader } from './core/keys';
29
- export { OpaqueReference } from './core/opaque-reference';
30
- export * from './core/plugin';
31
- export { createReference } from './core/reference';
32
- export { default as Serializer } from './core/Serializer';
33
- export { createStream } from './core/stream';
34
- export type { Stream, StreamListener } from './core/stream';
35
- export * from './core/tree';
36
- export type { SerovalNode } from './core/types';