seroval 1.1.1 → 1.2.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 +728 -523
- package/dist/cjs/development/index.cjs.map +3 -3
- package/dist/cjs/production/index.cjs +7 -7
- package/dist/esm/development/index.mjs +728 -523
- package/dist/esm/development/index.mjs.map +3 -3
- package/dist/esm/production/index.mjs +7 -7
- package/dist/types/core/abort-signal.d.ts +2 -0
- package/dist/types/core/abort-signal.d.ts.map +1 -0
- package/dist/types/core/base-primitives.d.ts +2 -1
- package/dist/types/core/base-primitives.d.ts.map +1 -1
- package/dist/types/core/compat.d.ts +3 -2
- package/dist/types/core/compat.d.ts.map +1 -1
- package/dist/types/core/constants.d.ts +5 -1
- package/dist/types/core/constants.d.ts.map +1 -1
- package/dist/types/core/context/deserializer.d.ts +3 -0
- package/dist/types/core/context/deserializer.d.ts.map +1 -1
- package/dist/types/core/context/parser/async.d.ts +3 -0
- package/dist/types/core/context/parser/async.d.ts.map +1 -1
- package/dist/types/core/context/parser/stream.d.ts +3 -1
- package/dist/types/core/context/parser/stream.d.ts.map +1 -1
- package/dist/types/core/context/parser/sync.d.ts +4 -1
- package/dist/types/core/context/parser/sync.d.ts.map +1 -1
- package/dist/types/core/context/parser.d.ts +9 -10
- package/dist/types/core/context/parser.d.ts.map +1 -1
- package/dist/types/core/context/serializer.d.ts +4 -1
- package/dist/types/core/context/serializer.d.ts.map +1 -1
- package/dist/types/core/cross/index.d.ts.map +1 -1
- package/dist/types/core/literals.d.ts.map +1 -1
- package/dist/types/core/node.d.ts +8 -0
- package/dist/types/core/node.d.ts.map +1 -0
- package/dist/types/core/special-reference.d.ts +6 -1
- package/dist/types/core/special-reference.d.ts.map +1 -1
- package/dist/types/core/tree/serializer.d.ts +2 -1
- package/dist/types/core/tree/serializer.d.ts.map +1 -1
- package/dist/types/core/types.d.ts +20 -2
- package/dist/types/core/types.d.ts.map +1 -1
- package/dist/types/core/utils/iterator-to-sequence.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/core/abort-signal.ts +19 -0
- package/src/core/base-primitives.ts +359 -337
- package/src/core/compat.ts +2 -1
- package/src/core/constants.ts +5 -0
- package/src/core/context/deserializer.ts +34 -1
- package/src/core/context/parser/async.ts +75 -22
- package/src/core/context/parser/stream.ts +91 -37
- package/src/core/context/parser/sync.ts +61 -7
- package/src/core/context/parser.ts +121 -117
- package/src/core/context/serializer.ts +55 -9
- package/src/core/cross/index.ts +2 -6
- package/src/core/literals.ts +16 -15
- package/src/core/node.ts +40 -0
- package/src/core/special-reference.ts +7 -0
- package/src/core/tree/serializer.ts +7 -0
- package/src/core/types.ts +32 -2
- package/src/core/utils/iterator-to-sequence.ts +3 -1
package/src/core/types.ts
CHANGED
|
@@ -269,6 +269,9 @@ export interface SerovalPluginNode extends SerovalBaseNode {
|
|
|
269
269
|
c: string;
|
|
270
270
|
}
|
|
271
271
|
|
|
272
|
+
/**
|
|
273
|
+
* Represents special values as placeholders
|
|
274
|
+
*/
|
|
272
275
|
export interface SerovalSpecialReferenceNode extends SerovalBaseNode {
|
|
273
276
|
t: SerovalNodeType.SpecialReference;
|
|
274
277
|
i: number;
|
|
@@ -302,24 +305,48 @@ export interface SerovalStreamConstructorNode extends SerovalBaseNode {
|
|
|
302
305
|
t: SerovalNodeType.StreamConstructor;
|
|
303
306
|
i: number;
|
|
304
307
|
a: SerovalNode[];
|
|
308
|
+
// special reference to the constructor
|
|
305
309
|
f: SerovalNodeWithID;
|
|
306
310
|
}
|
|
307
311
|
|
|
308
312
|
export interface SerovalStreamNextNode extends SerovalBaseNode {
|
|
309
313
|
t: SerovalNodeType.StreamNext;
|
|
310
314
|
i: number;
|
|
315
|
+
// Next value
|
|
311
316
|
f: SerovalNode;
|
|
312
317
|
}
|
|
313
318
|
|
|
314
319
|
export interface SerovalStreamThrowNode extends SerovalBaseNode {
|
|
315
320
|
t: SerovalNodeType.StreamThrow;
|
|
316
321
|
i: number;
|
|
322
|
+
// Throw value
|
|
317
323
|
f: SerovalNode;
|
|
318
324
|
}
|
|
319
325
|
|
|
320
326
|
export interface SerovalStreamReturnNode extends SerovalBaseNode {
|
|
321
327
|
t: SerovalNodeType.StreamReturn;
|
|
322
328
|
i: number;
|
|
329
|
+
// Return value
|
|
330
|
+
f: SerovalNode;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
export interface SerovalAbortSignalConstructorNode extends SerovalBaseNode {
|
|
334
|
+
t: SerovalNodeType.AbortSignalConstructor;
|
|
335
|
+
i: number;
|
|
336
|
+
// special reference to the constructor
|
|
337
|
+
f: SerovalNodeWithID;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
export interface SerovalAbortSignalAbortNode extends SerovalBaseNode {
|
|
341
|
+
t: SerovalNodeType.AbortSignalAbort;
|
|
342
|
+
i: number;
|
|
343
|
+
a: [resolver: SerovalNodeWithID, resolved: SerovalNode];
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
export interface SerovalAbortSignalSyncNode extends SerovalBaseNode {
|
|
347
|
+
t: SerovalNodeType.AbortSignalSync;
|
|
348
|
+
i: number;
|
|
349
|
+
// Abort reason
|
|
323
350
|
f: SerovalNode;
|
|
324
351
|
}
|
|
325
352
|
|
|
@@ -345,7 +372,8 @@ export type SerovalSyncNode =
|
|
|
345
372
|
| SerovalIteratorFactoryNode
|
|
346
373
|
| SerovalIteratorFactoryInstanceNode
|
|
347
374
|
| SerovalAsyncIteratorFactoryNode
|
|
348
|
-
| SerovalAsyncIteratorFactoryInstanceNode
|
|
375
|
+
| SerovalAsyncIteratorFactoryInstanceNode
|
|
376
|
+
| SerovalAbortSignalSyncNode;
|
|
349
377
|
|
|
350
378
|
export type SerovalAsyncNode =
|
|
351
379
|
| SerovalPromiseNode
|
|
@@ -355,7 +383,9 @@ export type SerovalAsyncNode =
|
|
|
355
383
|
| SerovalStreamConstructorNode
|
|
356
384
|
| SerovalStreamNextNode
|
|
357
385
|
| SerovalStreamThrowNode
|
|
358
|
-
| SerovalStreamReturnNode
|
|
386
|
+
| SerovalStreamReturnNode
|
|
387
|
+
| SerovalAbortSignalConstructorNode
|
|
388
|
+
| SerovalAbortSignalAbortNode;
|
|
359
389
|
|
|
360
390
|
export type SerovalNode = SerovalSyncNode | SerovalAsyncNode;
|
|
361
391
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { NIL } from "../constants";
|
|
2
|
+
|
|
1
3
|
export interface Sequence {
|
|
2
4
|
v: unknown[];
|
|
3
5
|
t: number;
|
|
@@ -46,7 +48,7 @@ export function sequenceToIterator<T>(
|
|
|
46
48
|
if (index > sequence.d) {
|
|
47
49
|
return {
|
|
48
50
|
done: true,
|
|
49
|
-
value:
|
|
51
|
+
value: NIL,
|
|
50
52
|
};
|
|
51
53
|
}
|
|
52
54
|
const currentIndex = index++;
|