@yume-chan/struct 0.0.9 → 0.0.10

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 (84) hide show
  1. package/CHANGELOG.json +23 -0
  2. package/CHANGELOG.md +16 -0
  3. package/LICENSE +21 -21
  4. package/README.md +720 -709
  5. package/dts/basic/context.d.ts +10 -18
  6. package/dts/basic/context.d.ts.map +1 -1
  7. package/dts/basic/definition.d.ts +4 -4
  8. package/dts/basic/definition.d.ts.map +1 -1
  9. package/dts/basic/field-value.d.ts +3 -5
  10. package/dts/basic/field-value.d.ts.map +1 -1
  11. package/dts/basic/struct-value.d.ts.map +1 -1
  12. package/dts/struct.d.ts +16 -17
  13. package/dts/struct.d.ts.map +1 -1
  14. package/dts/syncbird.d.ts +20 -0
  15. package/dts/syncbird.d.ts.map +1 -0
  16. package/dts/types/array-buffer.d.ts +13 -12
  17. package/dts/types/array-buffer.d.ts.map +1 -1
  18. package/dts/types/number.d.ts +4 -3
  19. package/dts/types/number.d.ts.map +1 -1
  20. package/dts/types/variable-length-array-buffer.d.ts +4 -4
  21. package/dts/types/variable-length-array-buffer.d.ts.map +1 -1
  22. package/dts/utils.d.ts +3 -2
  23. package/dts/utils.d.ts.map +1 -1
  24. package/esm/basic/context.js.map +1 -1
  25. package/esm/basic/definition.js.map +1 -1
  26. package/esm/basic/field-value.js +1 -2
  27. package/esm/basic/field-value.js.map +1 -1
  28. package/esm/basic/struct-value.js +0 -6
  29. package/esm/basic/struct-value.js.map +1 -1
  30. package/esm/struct.js +27 -17
  31. package/esm/struct.js.map +1 -1
  32. package/esm/syncbird.js +25 -0
  33. package/esm/syncbird.js.map +1 -0
  34. package/esm/types/array-buffer.js +21 -20
  35. package/esm/types/array-buffer.js.map +1 -1
  36. package/esm/types/number.js +9 -8
  37. package/esm/types/number.js.map +1 -1
  38. package/esm/types/variable-length-array-buffer.js +8 -8
  39. package/esm/types/variable-length-array-buffer.js.map +1 -1
  40. package/esm/utils.js +10 -0
  41. package/esm/utils.js.map +1 -1
  42. package/package.json +47 -50
  43. package/src/basic/context.ts +32 -42
  44. package/src/basic/definition.ts +72 -69
  45. package/src/basic/field-value.ts +67 -73
  46. package/src/basic/index.ts +4 -4
  47. package/src/basic/struct-value.ts +39 -45
  48. package/src/index.ts +5 -5
  49. package/src/struct.ts +595 -575
  50. package/src/syncbird.ts +53 -0
  51. package/src/types/array-buffer.ts +194 -184
  52. package/src/types/fixed-length-array-buffer.ts +17 -17
  53. package/src/types/index.ts +4 -4
  54. package/src/types/number.ts +114 -100
  55. package/src/types/variable-length-array-buffer.ts +142 -145
  56. package/src/utils.ts +62 -51
  57. package/cjs/basic/context.js +0 -7
  58. package/cjs/basic/context.js.map +0 -1
  59. package/cjs/basic/definition.js +0 -25
  60. package/cjs/basic/definition.js.map +0 -1
  61. package/cjs/basic/field-value.js +0 -40
  62. package/cjs/basic/field-value.js.map +0 -1
  63. package/cjs/basic/index.js +0 -8
  64. package/cjs/basic/index.js.map +0 -1
  65. package/cjs/basic/struct-value.js +0 -46
  66. package/cjs/basic/struct-value.js.map +0 -1
  67. package/cjs/index.js +0 -11
  68. package/cjs/index.js.map +0 -1
  69. package/cjs/struct.js +0 -177
  70. package/cjs/struct.js.map +0 -1
  71. package/cjs/types/array-buffer.js +0 -118
  72. package/cjs/types/array-buffer.js.map +0 -1
  73. package/cjs/types/fixed-length-array-buffer.js +0 -12
  74. package/cjs/types/fixed-length-array-buffer.js.map +0 -1
  75. package/cjs/types/index.js +0 -8
  76. package/cjs/types/index.js.map +0 -1
  77. package/cjs/types/number.js +0 -52
  78. package/cjs/types/number.js.map +0 -1
  79. package/cjs/types/variable-length-array-buffer.js +0 -77
  80. package/cjs/types/variable-length-array-buffer.js.map +0 -1
  81. package/cjs/utils.js +0 -11
  82. package/cjs/utils.js.map +0 -1
  83. package/tsconfig.cjs.json +0 -11
  84. package/tsconfig.esm.json +0 -15
@@ -1,28 +1,20 @@
1
- import type { ValueOrPromise } from '../utils';
2
- /**
3
- * Context with enough methods to serialize a struct
4
- */
5
- export interface StructSerializationContext {
1
+ export interface StructDeserializeStream {
6
2
  /**
7
- * Encode the specified string into an ArrayBuffer using UTF-8 encoding
3
+ * Read data from the underlying data source.
4
+ *
5
+ * Stream must return exactly `length` bytes or data. If that's not possible
6
+ * (due to end of file or other error condition), it must throw an error.
8
7
  */
9
- encodeUtf8(input: string): ArrayBuffer;
8
+ read(length: number): ArrayBuffer;
10
9
  }
11
- /**
12
- * Context with enough methods to deserialize a struct
13
- */
14
- export interface StructDeserializationContext extends StructSerializationContext {
15
- /**
16
- * Decode the specified `ArrayBuffer` using UTF-8 encoding
17
- */
18
- decodeUtf8(buffer: ArrayBuffer): string;
10
+ export interface StructAsyncDeserializeStream {
19
11
  /**
20
12
  * Read data from the underlying data source.
21
13
  *
22
- * Context should return exactly `length` bytes or data. If that's not possible
23
- * (due to end of file or other error condition), it should throw an error.
14
+ * Context must return exactly `length` bytes or data. If that's not possible
15
+ * (due to end of file or other error condition), it must throw an error.
24
16
  */
25
- read(length: number): ValueOrPromise<ArrayBuffer>;
17
+ read(length: number): Promise<ArrayBuffer>;
26
18
  }
27
19
  export interface StructOptions {
28
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/basic/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACvC;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,0BAA0B;IAC5E;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC;IAExC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,aAAa,CAExD,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/basic/context.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACpC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;CACrC;AAED,MAAM,WAAW,4BAA4B;IACzC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,aAAa,CAExD,CAAC"}
@@ -1,5 +1,4 @@
1
- import type { ValueOrPromise } from '../utils';
2
- import type { StructDeserializationContext, StructOptions, StructSerializationContext } from './context';
1
+ import type { StructAsyncDeserializeStream, StructDeserializeStream, StructOptions } from './context';
3
2
  import type { StructFieldValue } from './field-value';
4
3
  import type { StructValue } from './struct-value';
5
4
  /**
@@ -39,10 +38,11 @@ export declare abstract class StructFieldDefinition<TOptions = void, TValue = un
39
38
  /**
40
39
  * When implemented in derived classes, creates a `StructFieldValue` from a given `value`.
41
40
  */
42
- abstract create(options: Readonly<StructOptions>, context: StructSerializationContext, struct: StructValue, value: TValue): StructFieldValue<this>;
41
+ abstract create(options: Readonly<StructOptions>, struct: StructValue, value: TValue): StructFieldValue<this>;
43
42
  /**
44
43
  * When implemented in derived classes, creates a `StructFieldValue` by parsing `context`.
45
44
  */
46
- abstract deserialize(options: Readonly<StructOptions>, context: StructDeserializationContext, struct: StructValue): ValueOrPromise<StructFieldValue<this>>;
45
+ abstract deserialize(options: Readonly<StructOptions>, stream: StructDeserializeStream, struct: StructValue): StructFieldValue<this>;
46
+ abstract deserialize(options: Readonly<StructOptions>, stream: StructAsyncDeserializeStream, struct: StructValue): Promise<StructFieldValue<this>>;
47
47
  }
48
48
  //# sourceMappingURL=definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,4BAA4B,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACzG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,8BAAsB,qBAAqB,CACvC,QAAQ,GAAG,IAAI,EACf,MAAM,GAAG,OAAO,EAChB,YAAY,SAAS,WAAW,GAAG,KAAK;IAExC;;;OAGG;IACH,SAAgB,MAAM,EAAG,MAAM,CAAC;IAEhC;;;OAGG;IACH,SAAgB,YAAY,EAAG,YAAY,CAAC;IAE5C,SAAgB,OAAO,EAAE,QAAQ,CAAC;gBAEf,OAAO,EAAE,QAAQ;IAIpC;;;;OAIG;aACa,OAAO,IAAI,MAAM;IAEjC;;OAEG;aACa,MAAM,CAClB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,OAAO,EAAE,0BAA0B,EACnC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,GACd,gBAAgB,CAAC,IAAI,CAAC;IAEzB;;OAEG;aACa,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,OAAO,EAAE,4BAA4B,EACrC,MAAM,EAAE,WAAW,GACpB,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAC5C"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACtG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,8BAAsB,qBAAqB,CACvC,QAAQ,GAAG,IAAI,EACf,MAAM,GAAG,OAAO,EAChB,YAAY,SAAS,WAAW,GAAG,KAAK;IAExC;;;OAGG;IACH,SAAgB,MAAM,EAAG,MAAM,CAAC;IAEhC;;;OAGG;IACH,SAAgB,YAAY,EAAG,YAAY,CAAC;IAE5C,SAAgB,OAAO,EAAE,QAAQ,CAAC;gBAEf,OAAO,EAAE,QAAQ;IAIpC;;;;OAIG;aACa,OAAO,IAAI,MAAM;IAEjC;;OAEG;aACa,MAAM,CAClB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,GACd,gBAAgB,CAAC,IAAI,CAAC;IAEzB;;OAEG;aACa,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,WAAW,GACpB,gBAAgB,CAAC,IAAI,CAAC;aACT,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,4BAA4B,EACpC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CACrC"}
@@ -1,4 +1,4 @@
1
- import type { StructOptions, StructSerializationContext } from './context';
1
+ import type { StructOptions } from './context';
2
2
  import type { StructFieldDefinition } from './definition';
3
3
  import type { StructValue } from './struct-value';
4
4
  /**
@@ -12,12 +12,10 @@ export declare abstract class StructFieldValue<TDefinition extends StructFieldDe
12
12
  readonly definition: TDefinition;
13
13
  /** Gets the options of the associated `Struct` */
14
14
  readonly options: Readonly<StructOptions>;
15
- /** Gets the serialization context of the associated `Struct` instance */
16
- readonly context: StructSerializationContext;
17
15
  /** Gets the associated `Struct` instance */
18
16
  readonly struct: StructValue;
19
17
  protected value: TDefinition['TValue'];
20
- constructor(definition: TDefinition, options: Readonly<StructOptions>, context: StructSerializationContext, struct: StructValue, value: TDefinition['TValue']);
18
+ constructor(definition: TDefinition, options: Readonly<StructOptions>, struct: StructValue, value: TDefinition['TValue']);
21
19
  /**
22
20
  * Gets size of this field. By default, it returns its `definition`'s size.
23
21
  *
@@ -35,6 +33,6 @@ export declare abstract class StructFieldValue<TDefinition extends StructFieldDe
35
33
  /**
36
34
  * When implemented in derived classes, serializes this field into `dataView` at `offset`
37
35
  */
38
- abstract serialize(dataView: DataView, offset: number, context: StructSerializationContext): void;
36
+ abstract serialize(dataView: DataView, offset: number): void;
39
37
  }
40
38
  //# sourceMappingURL=field-value.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-value.d.ts","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;GAKG;AACH,8BAAsB,gBAAgB,CAClC,WAAW,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAE/F,6DAA6D;IAC7D,SAAgB,UAAU,EAAE,WAAW,CAAC;IAExC,kDAAkD;IAClD,SAAgB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEjD,yEAAyE;IACzE,SAAgB,OAAO,EAAE,0BAA0B,CAAC;IAEpD,4CAA4C;IAC5C,SAAgB,MAAM,EAAE,WAAW,CAAC;IAEpC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAGnC,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,OAAO,EAAE,0BAA0B,EACnC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC;IAShC;;;;OAIG;IACI,OAAO,IAAI,MAAM;IAIxB;;OAEG;IACI,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC;IAInC;;OAEG;IACI,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;IAI9C;;OAEG;aACa,SAAS,CACrB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,0BAA0B,GACpC,IAAI;CACV"}
1
+ {"version":3,"file":"field-value.d.ts","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;GAKG;AACH,8BAAsB,gBAAgB,CAClC,WAAW,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAE/F,6DAA6D;IAC7D,SAAgB,UAAU,EAAE,WAAW,CAAC;IAExC,kDAAkD;IAClD,SAAgB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEjD,4CAA4C;IAC5C,SAAgB,MAAM,EAAE,WAAW,CAAC;IAEpC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAGnC,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC;IAQhC;;;;OAIG;IACI,OAAO,IAAI,MAAM;IAIxB;;OAEG;IACI,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC;IAInC;;OAEG;IACI,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;IAI9C;;OAEG;aACa,SAAS,CACrB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,GACf,IAAI;CACV"}
@@ -1 +1 @@
1
- {"version":3,"file":"struct-value.d.ts","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD;;GAEG;AACH,qBAAa,WAAW;IAGpB;;OAEG;IACH,SAAgB,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAM;IAEzD;;;;;OAKG;IACI,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAc3D;;;;OAIG;IACI,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,gBAAgB;CAMjD"}
1
+ {"version":3,"file":"struct-value.d.ts","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD;;GAEG;AACH,qBAAa,WAAW;IAGpB;;OAEG;IACH,SAAgB,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAM;IAEzD;;;;;OAKG;IACI,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAW3D;;;;OAIG;IACI,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,gBAAgB;CAGjD"}
package/dts/struct.d.ts CHANGED
@@ -1,23 +1,21 @@
1
- import { StructDeserializationContext, StructFieldDefinition, StructOptions, StructSerializationContext } from './basic';
1
+ import type { StructAsyncDeserializeStream, StructDeserializeStream, StructFieldDefinition, StructOptions } from './basic';
2
2
  import { ArrayBufferFieldType, ArrayBufferLikeFieldType, FixedLengthArrayBufferLikeFieldDefinition, FixedLengthArrayBufferLikeFieldOptions, LengthField, NumberFieldType, StringFieldType, Uint8ClampedArrayFieldType, VariableLengthArrayBufferLikeFieldDefinition, VariableLengthArrayBufferLikeFieldOptions } from './types';
3
- import { Awaited, Evaluate, Identity, Overwrite } from './utils';
3
+ import { Evaluate, Identity, Overwrite } from "./utils";
4
4
  export interface StructLike<TValue> {
5
- deserialize(context: StructDeserializationContext): Promise<TValue>;
5
+ deserialize(stream: StructDeserializeStream | StructAsyncDeserializeStream): Promise<TValue>;
6
6
  }
7
7
  /**
8
8
  * Extract the value type of the specified `Struct`
9
- *
10
- * The lack of generic constraint is on purpose to allow `StructLike` types
11
9
  */
12
10
  export declare type StructValueType<T extends StructLike<any>> = Awaited<ReturnType<T['deserialize']>>;
13
11
  /**
14
- * Create a new `Struct` type with `TDescriptor` appended
12
+ * Create a new `Struct` type with `TDefinition` appended
15
13
  */
16
14
  declare type AddFieldDescriptor<TFields extends object, TOmitInitKey extends PropertyKey, TExtra extends object, TPostDeserialized, TFieldName extends PropertyKey, TDefinition extends StructFieldDefinition<any, any, any>> = Identity<Struct<Evaluate<TFields & Record<TFieldName, TDefinition['TValue']>>, TOmitInitKey | TDefinition['TOmitInitKey'], TExtra, TPostDeserialized>>;
17
15
  /**
18
- * Similar to `ArrayBufferLikeFieldCreator`, but bind to a `ArrayBufferLikeFieldType`
16
+ * Similar to `ArrayBufferLikeFieldCreator`, but bind to `TType`
19
17
  */
20
- interface ArrayBufferTypeFieldDefinitionCreator<TFields extends object, TOmitInitKey extends PropertyKey, TExtra extends object, TPostDeserialized, TType extends ArrayBufferLikeFieldType> {
18
+ interface BindedArrayBufferLikeFieldDefinitionCreator<TFields extends object, TOmitInitKey extends PropertyKey, TExtra extends object, TPostDeserialized, TType extends ArrayBufferLikeFieldType<any, any>> {
21
19
  <TName extends PropertyKey, TTypeScriptType = TType['TTypeScriptType']>(name: TName, options: FixedLengthArrayBufferLikeFieldOptions, typescriptType?: TTypeScriptType): AddFieldDescriptor<TFields, TOmitInitKey, TExtra, TPostDeserialized, TName, FixedLengthArrayBufferLikeFieldDefinition<TType, FixedLengthArrayBufferLikeFieldOptions>>;
22
20
  <TName extends PropertyKey, TLengthField extends LengthField<TFields>, TOptions extends VariableLengthArrayBufferLikeFieldOptions<TFields, TLengthField>, TTypeScriptType = TType['TTypeScriptType']>(name: TName, options: TOptions, typescriptType?: TTypeScriptType): AddFieldDescriptor<TFields, TOmitInitKey, TExtra, TPostDeserialized, TName, VariableLengthArrayBufferLikeFieldDefinition<TType, TOptions>>;
23
21
  }
@@ -85,18 +83,18 @@ export declare class Struct<TFields extends object = {}, TOmitInitKey extends Pr
85
83
  */
86
84
  uint64<TName extends PropertyKey, TTypeScriptType = (typeof NumberFieldType)['Uint64']['TTypeScriptType']>(name: TName, _typescriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
87
85
  private arrayBufferLike;
88
- arrayBuffer: ArrayBufferTypeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, ArrayBufferFieldType>;
89
- uint8ClampedArray: ArrayBufferTypeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, Uint8ClampedArrayFieldType>;
90
- string: ArrayBufferTypeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, StringFieldType>;
86
+ arrayBuffer: BindedArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, ArrayBufferFieldType>;
87
+ uint8ClampedArray: BindedArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, Uint8ClampedArrayFieldType>;
88
+ string: BindedArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, StringFieldType>;
91
89
  /**
92
- * Adds some extra fields into every Struct value.
90
+ * Adds some extra properties into every `Struct` value.
93
91
  *
94
- * Extra fields will not affect serialize or deserialize process.
92
+ * Extra properties will not affect serialize or deserialize process.
95
93
  *
96
- * Multiple calls to `extra` will merge all values together.
94
+ * Multiple calls to `extra` will merge all properties together.
97
95
  *
98
96
  * @param value
99
- * An object containing anything you want to add to the result object. Accessors and methods are also allowed.
97
+ * An object containing properties to be added to the result value. Accessors and methods are also allowed.
100
98
  */
101
99
  extra<T extends Record<Exclude<keyof T, Exclude<keyof T, keyof TFields>>, never>>(value: T & ThisType<Overwrite<Overwrite<TExtra, T>, TFields>>): Struct<TFields, TOmitInitKey, Overwrite<TExtra, T>, TPostDeserialized>;
102
100
  /**
@@ -120,8 +118,9 @@ export declare class Struct<TFields extends object = {}, TOmitInitKey extends Pr
120
118
  * will `deserialize` to return that object instead.
121
119
  */
122
120
  postDeserialize<TPostSerialize>(callback?: StructPostDeserialized<TFields, TPostSerialize>): Struct<TFields, TOmitInitKey, TExtra, TPostSerialize>;
123
- deserialize(context: StructDeserializationContext): Promise<StructDeserializedResult<TFields, TExtra, TPostDeserialized>>;
124
- serialize(init: Evaluate<Omit<TFields, TOmitInitKey>>, context: StructSerializationContext): ArrayBuffer;
121
+ deserialize(stream: StructDeserializeStream): StructDeserializedResult<TFields, TExtra, TPostDeserialized>;
122
+ deserialize(stream: StructAsyncDeserializeStream): Promise<StructDeserializedResult<TFields, TExtra, TPostDeserialized>>;
123
+ serialize(init: Evaluate<Omit<TFields, TOmitInitKey>>): ArrayBuffer;
125
124
  }
126
125
  export {};
127
126
  //# sourceMappingURL=struct.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import Bluebird from 'bluebird';
2
+ declare type Resolvable<R> = R | PromiseLike<R>;
3
+ export interface Syncbird<R> extends Bluebird<R> {
4
+ valueOrPromise(): R | PromiseLike<R>;
5
+ then<U>(onFulfill?: (value: R) => Resolvable<U>, onReject?: (error: any) => Resolvable<U>): Syncbird<U>;
6
+ then<TResult1 = R, TResult2 = never>(onfulfilled?: ((value: R) => Resolvable<TResult1>) | null, onrejected?: ((reason: any) => Resolvable<TResult2>) | null): Syncbird<TResult1 | TResult2>;
7
+ }
8
+ interface SyncbirdStatic {
9
+ /**
10
+ * Create a promise that is resolved with the given `value`. If `value` is a thenable or promise, the returned promise will assume its state.
11
+ */
12
+ resolve(): Syncbird<void>;
13
+ resolve<R>(value: Resolvable<R>): Syncbird<R>;
14
+ try<R>(fn: () => Resolvable<R>): Syncbird<R>;
15
+ attempt<R>(fn: () => Resolvable<R>): Syncbird<R>;
16
+ new <R>(callback: (resolve: (thenableOrResult?: Resolvable<R>) => void, reject: (error?: any) => void, onCancel?: (callback: () => void) => void) => void): Syncbird<R>;
17
+ }
18
+ export declare const Syncbird: SyncbirdStatic;
19
+ export {};
20
+ //# sourceMappingURL=syncbird.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncbird.d.ts","sourceRoot":"","sources":["../src/syncbird.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,aAAK,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAExC,MAAM,WAAW,QAAQ,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IAC5C,cAAc,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAErC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxG,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC/B,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,EACzD,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAC5D,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;CACpC;AAED,UAAU,cAAc;IACpB;;OAEG;IACH,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE9C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjD,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;CAC3K;AAED,eAAO,MAAM,QAAQ,EAAE,cAAoD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { StructDeserializationContext, StructFieldDefinition, StructFieldValue, StructOptions, StructSerializationContext, StructValue } from '../basic';
1
+ import { StructAsyncDeserializeStream, StructDeserializeStream, StructFieldDefinition, StructFieldValue, StructOptions, StructValue } from '../basic';
2
2
  /**
3
3
  * Base class for all types that
4
4
  * can be converted from an ArrayBuffer when deserialized,
@@ -16,9 +16,9 @@ export declare abstract class ArrayBufferLikeFieldType<TValue = unknown, TTypeSc
16
16
  * This function should be "pure", i.e.,
17
17
  * same `value` should always be converted to `ArrayBuffer`s that have same content.
18
18
  */
19
- abstract toArrayBuffer(value: TValue, context: StructSerializationContext): ArrayBuffer;
19
+ abstract toArrayBuffer(value: TValue): ArrayBuffer;
20
20
  /** When implemented in derived classes, converts the `ArrayBuffer` to a type-specific value */
21
- abstract fromArrayBuffer(arrayBuffer: ArrayBuffer, context: StructDeserializationContext): TValue;
21
+ abstract fromArrayBuffer(arrayBuffer: ArrayBuffer): TValue;
22
22
  /**
23
23
  * When implemented in derived classes, gets the size in byte of the type-specific `value`.
24
24
  *
@@ -44,27 +44,28 @@ export declare class Uint8ClampedArrayFieldType extends ArrayBufferLikeFieldType
44
44
  fromArrayBuffer(arrayBuffer: ArrayBuffer): Uint8ClampedArray;
45
45
  getSize(value: Uint8ClampedArray): number;
46
46
  }
47
- /** Am ArrayBufferLike type that converts between `ArrayBuffer` and `string` */
47
+ /** An ArrayBufferLike type that converts between `ArrayBuffer` and `string` */
48
48
  export declare class StringFieldType<TTypeScriptType = string> extends ArrayBufferLikeFieldType<string, TTypeScriptType> {
49
49
  static readonly instance: StringFieldType<string>;
50
- toArrayBuffer(value: string, context: StructSerializationContext): ArrayBuffer;
51
- fromArrayBuffer(arrayBuffer: ArrayBuffer, context: StructDeserializationContext): string;
50
+ toArrayBuffer(value: string): ArrayBuffer;
51
+ fromArrayBuffer(arrayBuffer: ArrayBuffer): string;
52
52
  getSize(): number;
53
53
  }
54
- export declare abstract class ArrayBufferLikeFieldDefinition<TType extends ArrayBufferLikeFieldType = ArrayBufferLikeFieldType, TOptions = void, TOmitInitKey extends PropertyKey = never> extends StructFieldDefinition<TOptions, TType['TTypeScriptType'], TOmitInitKey> {
54
+ export declare abstract class ArrayBufferLikeFieldDefinition<TType extends ArrayBufferLikeFieldType<any, any> = ArrayBufferLikeFieldType<unknown, unknown>, TOptions = void, TOmitInitKey extends PropertyKey = never> extends StructFieldDefinition<TOptions, TType['TTypeScriptType'], TOmitInitKey> {
55
55
  readonly type: TType;
56
56
  constructor(type: TType, options: TOptions);
57
57
  protected getDeserializeSize(struct: StructValue): number;
58
58
  /**
59
59
  * When implemented in derived classes, creates a `StructFieldValue` for the current field definition.
60
60
  */
61
- create(options: Readonly<StructOptions>, context: StructSerializationContext, struct: StructValue, value: TType['TTypeScriptType'], arrayBuffer?: ArrayBuffer): ArrayBufferLikeFieldValue<this>;
62
- deserialize(options: Readonly<StructOptions>, context: StructDeserializationContext, struct: StructValue): Promise<ArrayBufferLikeFieldValue<this>>;
61
+ create(options: Readonly<StructOptions>, struct: StructValue, value: TType['TTypeScriptType'], arrayBuffer?: ArrayBuffer): ArrayBufferLikeFieldValue<this>;
62
+ deserialize(options: Readonly<StructOptions>, stream: StructDeserializeStream, struct: StructValue): ArrayBufferLikeFieldValue<this>;
63
+ deserialize(options: Readonly<StructOptions>, stream: StructAsyncDeserializeStream, struct: StructValue): Promise<ArrayBufferLikeFieldValue<this>>;
63
64
  }
64
- export declare class ArrayBufferLikeFieldValue<TDefinition extends ArrayBufferLikeFieldDefinition<ArrayBufferLikeFieldType, any, any>> extends StructFieldValue<TDefinition> {
65
+ export declare class ArrayBufferLikeFieldValue<TDefinition extends ArrayBufferLikeFieldDefinition<ArrayBufferLikeFieldType<unknown, unknown>, any, any>> extends StructFieldValue<TDefinition> {
65
66
  protected arrayBuffer: ArrayBuffer | undefined;
66
- constructor(definition: TDefinition, options: Readonly<StructOptions>, context: StructSerializationContext, struct: StructValue, value: TDefinition['TValue'], arrayBuffer?: ArrayBuffer);
67
+ constructor(definition: TDefinition, options: Readonly<StructOptions>, struct: StructValue, value: TDefinition['TValue'], arrayBuffer?: ArrayBuffer);
67
68
  set(value: TDefinition['TValue']): void;
68
- serialize(dataView: DataView, offset: number, context: StructSerializationContext): void;
69
+ serialize(dataView: DataView, offset: number): void;
69
70
  }
70
71
  //# sourceMappingURL=array-buffer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"array-buffer.d.ts","sourceRoot":"","sources":["../../src/types/array-buffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array-buffer.d.ts","sourceRoot":"","sources":["../../src/types/array-buffer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { StructDeserializationContext, StructFieldDefinition, StructFieldValue, StructOptions, StructSerializationContext, StructValue } from '../basic';
1
+ import { StructAsyncDeserializeStream, StructDeserializeStream, StructFieldDefinition, StructFieldValue, StructOptions, StructValue } from '../basic';
2
2
  export declare type DataViewGetters = {
3
3
  [TKey in keyof DataView]: TKey extends `get${string}` ? TKey : never;
4
4
  }[keyof DataView];
@@ -24,8 +24,9 @@ export declare class NumberFieldDefinition<TType extends NumberFieldType = Numbe
24
24
  readonly type: TType;
25
25
  constructor(type: TType, _typescriptType?: TTypeScriptType);
26
26
  getSize(): number;
27
- create(options: Readonly<StructOptions>, context: StructSerializationContext, struct: StructValue, value: TTypeScriptType): NumberFieldValue<this>;
28
- deserialize(options: Readonly<StructOptions>, context: StructDeserializationContext, struct: StructValue): Promise<NumberFieldValue<this>>;
27
+ create(options: Readonly<StructOptions>, struct: StructValue, value: TTypeScriptType): NumberFieldValue<this>;
28
+ deserialize(options: Readonly<StructOptions>, stream: StructDeserializeStream, struct: StructValue): NumberFieldValue<this>;
29
+ deserialize(options: Readonly<StructOptions>, stream: StructAsyncDeserializeStream, struct: StructValue): Promise<NumberFieldValue<this>>;
29
30
  }
30
31
  export declare class NumberFieldValue<TDefinition extends NumberFieldDefinition<NumberFieldType, any>> extends StructFieldValue<TDefinition> {
31
32
  serialize(dataView: DataView, offset: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../src/types/number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,aAAa,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEzJ,oBAAY,eAAe,GACvB;KAAG,IAAI,IAAI,MAAM,QAAQ,GAAG,IAAI,SAAS,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,KAAK;CAAE,CAAC,MAAM,QAAQ,CAAC,CAAC;AAE7F,oBAAY,eAAe,GACvB;KAAG,IAAI,IAAI,MAAM,QAAQ,GAAG,IAAI,SAAS,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,KAAK;CAAE,CAAC,MAAM,QAAQ,CAAC,CAAC;AAE7F,qBAAa,eAAe,CAAC,eAAe,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM;IAClF,SAAgB,eAAe,EAAG,eAAe,CAAC;IAElD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,SAAgB,cAAc,EAAE,eAAe,CAAC;IAEhD,SAAgB,cAAc,EAAE,eAAe,CAAC;gBAG5C,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,eAAe,EAC/B,cAAc,EAAE,eAAe;IAOnC,gBAAuB,IAAI,0BAAwD;IAEnF,gBAAuB,KAAK,0BAA0D;IAEtF,gBAAuB,KAAK,0BAA0D;IAEtF,gBAAuB,MAAM,0BAA4D;IAEzF,gBAAuB,KAAK,0BAA0D;IAEtF,gBAAuB,MAAM,0BAA4D;IAEzF,gBAAuB,KAAK,0BAAgE;IAE5F,gBAAuB,MAAM,0BAAkE;CAClG;AAED,qBAAa,qBAAqB,CAC9B,KAAK,SAAS,eAAe,GAAG,eAAe,EAC/C,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,CACxC,SAAQ,qBAAqB,CAC/B,IAAI,EACJ,eAAe,CACd;IACD,SAAgB,IAAI,EAAE,KAAK,CAAC;gBAET,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,eAAe;IAK1D,OAAO,IAAI,MAAM;IAIjB,MAAM,CACT,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,OAAO,EAAE,0BAA0B,EACnC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,eAAe,GACvB,gBAAgB,CAAC,IAAI,CAAC;IAIZ,WAAW,CACpB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,OAAO,EAAE,4BAA4B,EACrC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CASrC;AAED,qBAAa,gBAAgB,CACzB,WAAW,SAAS,qBAAqB,CAAC,eAAe,EAAE,GAAG,CAAC,CAC7D,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IAChC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAU7D"}
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../src/types/number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAItJ,oBAAY,eAAe,GACvB;KAAG,IAAI,IAAI,MAAM,QAAQ,GAAG,IAAI,SAAS,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,KAAK;CAAE,CAAC,MAAM,QAAQ,CAAC,CAAC;AAE7F,oBAAY,eAAe,GACvB;KAAG,IAAI,IAAI,MAAM,QAAQ,GAAG,IAAI,SAAS,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,KAAK;CAAE,CAAC,MAAM,QAAQ,CAAC,CAAC;AAE7F,qBAAa,eAAe,CAAC,eAAe,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM;IAClF,SAAgB,eAAe,EAAG,eAAe,CAAC;IAElD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,SAAgB,cAAc,EAAE,eAAe,CAAC;IAEhD,SAAgB,cAAc,EAAE,eAAe,CAAC;gBAG5C,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,eAAe,EAC/B,cAAc,EAAE,eAAe;IAOnC,gBAAuB,IAAI,0BAAwD;IAEnF,gBAAuB,KAAK,0BAA0D;IAEtF,gBAAuB,KAAK,0BAA0D;IAEtF,gBAAuB,MAAM,0BAA4D;IAEzF,gBAAuB,KAAK,0BAA0D;IAEtF,gBAAuB,MAAM,0BAA4D;IAEzF,gBAAuB,KAAK,0BAAgE;IAE5F,gBAAuB,MAAM,0BAAkE;CAClG;AAED,qBAAa,qBAAqB,CAC9B,KAAK,SAAS,eAAe,GAAG,eAAe,EAC/C,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,CACxC,SAAQ,qBAAqB,CAC/B,IAAI,EACJ,eAAe,CACd;IACD,SAAgB,IAAI,EAAE,KAAK,CAAC;gBAET,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,eAAe;IAK1D,OAAO,IAAI,MAAM;IAIjB,MAAM,CACT,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,eAAe,GACvB,gBAAgB,CAAC,IAAI,CAAC;IAIT,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,WAAW,GACpB,gBAAgB,CAAC,IAAI,CAAC;IACT,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,4BAA4B,EACpC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAiBrC;AAED,qBAAa,gBAAgB,CACzB,WAAW,SAAS,qBAAqB,CAAC,eAAe,EAAE,GAAG,CAAC,CAC7D,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IAChC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAU7D"}
@@ -1,4 +1,4 @@
1
- import { StructFieldDefinition, StructFieldValue, StructOptions, StructSerializationContext, StructValue } from '../basic';
1
+ import { StructFieldDefinition, StructFieldValue, StructOptions, StructValue } from '../basic';
2
2
  import type { KeysOfType } from '../utils';
3
3
  import { ArrayBufferLikeFieldDefinition, ArrayBufferLikeFieldType, ArrayBufferLikeFieldValue } from './array-buffer';
4
4
  export declare type LengthField<TFields> = KeysOfType<TFields, number | string>;
@@ -9,12 +9,12 @@ export interface VariableLengthArrayBufferLikeFieldOptions<TFields = object, TLe
9
9
  export declare class VariableLengthArrayBufferLikeFieldDefinition<TType extends ArrayBufferLikeFieldType = ArrayBufferLikeFieldType, TOptions extends VariableLengthArrayBufferLikeFieldOptions = VariableLengthArrayBufferLikeFieldOptions> extends ArrayBufferLikeFieldDefinition<TType, TOptions, TOptions['lengthField']> {
10
10
  getSize(): number;
11
11
  protected getDeserializeSize(struct: StructValue): number;
12
- create(options: Readonly<StructOptions>, context: StructSerializationContext, struct: StructValue, value: TType['TTypeScriptType'], arrayBuffer?: ArrayBuffer): VariableLengthArrayBufferLikeStructFieldValue<this>;
12
+ create(options: Readonly<StructOptions>, struct: StructValue, value: TType['TTypeScriptType'], arrayBuffer?: ArrayBuffer): VariableLengthArrayBufferLikeStructFieldValue<this>;
13
13
  }
14
14
  export declare class VariableLengthArrayBufferLikeStructFieldValue<TDefinition extends VariableLengthArrayBufferLikeFieldDefinition = VariableLengthArrayBufferLikeFieldDefinition> extends ArrayBufferLikeFieldValue<TDefinition> {
15
15
  protected length: number | undefined;
16
16
  protected lengthFieldValue: VariableLengthArrayBufferLikeFieldLengthValue;
17
- constructor(definition: TDefinition, options: Readonly<StructOptions>, context: StructSerializationContext, struct: StructValue, value: TDefinition['TValue'], arrayBuffer?: ArrayBuffer);
17
+ constructor(definition: TDefinition, options: Readonly<StructOptions>, struct: StructValue, value: TDefinition['TValue'], arrayBuffer?: ArrayBuffer);
18
18
  getSize(): number;
19
19
  set(value: unknown): void;
20
20
  }
@@ -26,7 +26,7 @@ export declare class VariableLengthArrayBufferLikeFieldLengthValue extends Struc
26
26
  getSize(): number;
27
27
  get(): string | number;
28
28
  set(): void;
29
- serialize(dataView: DataView, offset: number, context: StructSerializationContext): void;
29
+ serialize(dataView: DataView, offset: number): void;
30
30
  }
31
31
  export {};
32
32
  //# sourceMappingURL=variable-length-array-buffer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"variable-length-array-buffer.d.ts","sourceRoot":"","sources":["../../src/types/variable-length-array-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,aAAa,EAAE,0BAA0B,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC3H,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAErH,oBAAY,WAAW,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAExE,MAAM,WAAW,yCAAyC,CACtD,OAAO,GAAG,MAAM,EAChB,YAAY,SAAS,WAAW,CAAC,OAAO,CAAC,GAAG,GAAG;IAE/C,WAAW,EAAE,YAAY,CAAC;IAE1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,4CAA4C,CACrD,KAAK,SAAS,wBAAwB,GAAG,wBAAwB,EACjE,QAAQ,SAAS,yCAAyC,GAAG,yCAAyC,CACpG,SAAQ,8BAA8B,CACxC,KAAK,EACL,QAAQ,EACR,QAAQ,CAAC,aAAa,CAAC,CACtB;IACM,OAAO,IAAI,MAAM;IAIxB,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,WAAW;IAQzC,MAAM,CACT,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,OAAO,EAAE,0BAA0B,EACnC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAC/B,WAAW,CAAC,EAAE,WAAW,GAC1B,6CAA6C,CAAC,IAAI,CAAC;CAUzD;AAED,qBAAa,6CAA6C,CACtD,WAAW,SAAS,4CAA4C,GAAG,4CAA4C,CAC7G,SAAQ,yBAAyB,CAAC,WAAW,CAAC;IAChD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAErC,SAAS,CAAC,gBAAgB,EAAE,6CAA6C,CAAC;gBAGtE,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,OAAO,EAAE,0BAA0B,EACnC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,EAC5B,WAAW,CAAC,EAAE,WAAW;IAmBtB,OAAO;IAYP,GAAG,CAAC,KAAK,EAAE,OAAO;CAK5B;AAGD,aAAK,2CAA2C,GAC5C,gBAAgB,CAAC,qBAAqB,CAAC,yCAAyC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEjG,qBAAa,6CACT,SAAQ,gBAAgB;IACxB,SAAS,CAAC,aAAa,EAAE,gBAAgB,CAAC;IAE1C,SAAS,CAAC,gBAAgB,EAAE,2CAA2C,CAAC;gBAGpE,aAAa,EAAE,gBAAgB,EAC/B,gBAAgB,EAAE,2CAA2C;IAO1D,OAAO;IAId,GAAG;IAWH,GAAG;IAEH,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,0BAA0B;CAIpF"}
1
+ {"version":3,"file":"variable-length-array-buffer.d.ts","sourceRoot":"","sources":["../../src/types/variable-length-array-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAErH,oBAAY,WAAW,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAExE,MAAM,WAAW,yCAAyC,CACtD,OAAO,GAAG,MAAM,EAChB,YAAY,SAAS,WAAW,CAAC,OAAO,CAAC,GAAG,GAAG;IAE/C,WAAW,EAAE,YAAY,CAAC;IAE1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,4CAA4C,CACrD,KAAK,SAAS,wBAAwB,GAAG,wBAAwB,EACjE,QAAQ,SAAS,yCAAyC,GAAG,yCAAyC,CACpG,SAAQ,8BAA8B,CACxC,KAAK,EACL,QAAQ,EACR,QAAQ,CAAC,aAAa,CAAC,CACtB;IACM,OAAO,IAAI,MAAM;cAIL,kBAAkB,CAAC,MAAM,EAAE,WAAW;IAQzC,MAAM,CAClB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,EAC/B,WAAW,CAAC,EAAE,WAAW,GAC1B,6CAA6C,CAAC,IAAI,CAAC;CASzD;AAED,qBAAa,6CAA6C,CACtD,WAAW,SAAS,4CAA4C,GAAG,4CAA4C,CAC7G,SAAQ,yBAAyB,CAAC,WAAW,CAAC;IAChD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAErC,SAAS,CAAC,gBAAgB,EAAE,6CAA6C,CAAC;gBAGtE,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,EAC5B,WAAW,CAAC,EAAE,WAAW;IAmBb,OAAO;IAYP,GAAG,CAAC,KAAK,EAAE,OAAO;CAKrC;AAGD,aAAK,2CAA2C,GAC5C,gBAAgB,CAAC,qBAAqB,CAAC,yCAAyC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEjG,qBAAa,6CACT,SAAQ,gBAAgB;IACxB,SAAS,CAAC,aAAa,EAAE,gBAAgB,CAAC;IAE1C,SAAS,CAAC,gBAAgB,EAAE,2CAA2C,CAAC;gBAGpE,aAAa,EAAE,gBAAgB,EAC/B,gBAAgB,EAAE,2CAA2C;IAOjD,OAAO;IAIP,GAAG;IAWH,GAAG;IAEnB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;CAI/C"}
package/dts/utils.d.ts CHANGED
@@ -38,10 +38,11 @@ export declare type OmitNever<T> = Pick<T, {
38
38
  export declare type KeysOfType<T, TValue> = {
39
39
  [TKey in keyof T]: T[TKey] extends TValue ? TKey : never;
40
40
  }[keyof T];
41
- export declare type ValueOrPromise<T> = T | Promise<T>;
42
- export declare type Awaited<T> = T extends Promise<infer R> ? Awaited<R> : T;
41
+ export declare type ValueOrPromise<T> = T | PromiseLike<T>;
43
42
  /**
44
43
  * Returns a (fake) value of the given type.
45
44
  */
46
45
  export declare function placeholder<T>(): T;
46
+ export declare function encodeUtf8(input: string): ArrayBuffer;
47
+ export declare function decodeUtf8(buffer: ArrayBuffer): string;
47
48
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,oBAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAE5B;;GAEG;AACH,oBAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,KAAK,CAAC;AAE/E;;GAEG;AACH,oBAAY,SAAS,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,IAC3D,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAE7C;;GAEG;AACH,oBAAY,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC;CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEpG;;GAEG;AACH,oBAAY,UAAU,CAAC,CAAC,EAAE,MAAM,IAC5B;KAAG,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,KAAK;CAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAE1E,oBAAY,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE/C,oBAAY,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAErE;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,KAAK,CAAC,CAElC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,oBAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAE5B;;GAEG;AACH,oBAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,KAAK,CAAC;AAE/E;;GAEG;AACH,oBAAY,SAAS,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,IAC3D,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAE7C;;GAEG;AACH,oBAAY,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC;CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEpG;;GAEG;AACH,oBAAY,UAAU,CAAC,CAAC,EAAE,MAAM,IAC5B;KAAG,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,KAAK;CAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAE1E,oBAAY,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAEnD;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,KAAK,CAAC,CAElC;AAOD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAErD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/basic/context.ts"],"names":[],"mappings":"AAuCA,MAAM,CAAC,MAAM,oBAAoB,GAA4B;IACzD,YAAY,EAAE,KAAK;CACtB,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/basic/context.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,oBAAoB,GAA4B;IACzD,YAAY,EAAE,KAAK;CACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAgB,qBAAqB;IAmBvC,YAAmB,OAAiB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CA2BJ"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAgB,qBAAqB;IAmBvC,YAAmB,OAAiB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CA+BJ"}
@@ -5,10 +5,9 @@
5
5
  * It can override other fields' `StructFieldValue` in its own `StructFieldValue`'s constructor
6
6
  */
7
7
  export class StructFieldValue {
8
- constructor(definition, options, context, struct, value) {
8
+ constructor(definition, options, struct, value) {
9
9
  this.definition = definition;
10
10
  this.options = options;
11
- this.context = context;
12
11
  this.struct = struct;
13
12
  this.value = value;
14
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"field-value.js","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,OAAgB,gBAAgB;IAiBlC,YACI,UAAuB,EACvB,OAAgC,EAChC,OAAmC,EACnC,MAAmB,EACnB,KAA4B;QAE5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,OAAO;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,GAAG;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,KAA4B;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CAUJ"}
1
+ {"version":3,"file":"field-value.js","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,OAAgB,gBAAgB;IAclC,YACI,UAAuB,EACvB,OAAgC,EAChC,MAAmB,EACnB,KAA4B;QAE5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,OAAO;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,GAAG;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,KAA4B;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CASJ"}
@@ -16,9 +16,6 @@ export class StructValue {
16
16
  * @param value The associated `StructFieldValue`
17
17
  */
18
18
  set(key, value) {
19
- // TODO: TypeScript 4.2 will allow this behavior
20
- // https://github.com/microsoft/TypeScript/pull/26797
21
- // @ts-expect-error Type 'symbol' cannot be used as an index type. ts(2538)
22
19
  this.fieldValues[key] = value;
23
20
  Object.defineProperty(this.value, key, {
24
21
  configurable: true,
@@ -33,9 +30,6 @@ export class StructValue {
33
30
  * @param key The field name
34
31
  */
35
32
  get(key) {
36
- // TODO: TypeScript 4.2 will allow this behavior
37
- // https://github.com/microsoft/TypeScript/pull/26797
38
- // @ts-expect-error Type 'symbol' cannot be used as an index type. ts(2538)
39
33
  return this.fieldValues[key];
40
34
  }
41
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"struct-value.js","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,WAAW;IAAxB;QACI,gBAAgB,CAAU,gBAAW,GAA0C,EAAE,CAAC;QAElF;;WAEG;QACa,UAAK,GAAiC,EAAE,CAAC;IAiC7D,CAAC;IA/BG;;;;;OAKG;IACI,GAAG,CAAC,GAAgB,EAAE,KAAuB;QAChD,gDAAgD;QAChD,qDAAqD;QACrD,2EAA2E;QAC3E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAE9B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;YACnC,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,IAAI;YAChB,GAAG,KAAK,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7B,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAgB;QACvB,gDAAgD;QAChD,qDAAqD;QACrD,2EAA2E;QAC3E,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACJ"}
1
+ {"version":3,"file":"struct-value.js","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,WAAW;IAAxB;QACI,gBAAgB,CAAU,gBAAW,GAA0C,EAAE,CAAC;QAElF;;WAEG;QACa,UAAK,GAAiC,EAAE,CAAC;IA2B7D,CAAC;IAzBG;;;;;OAKG;IACI,GAAG,CAAC,GAAgB,EAAE,KAAuB;QAChD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAE9B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;YACnC,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,IAAI;YAChB,GAAG,KAAK,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7B,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAgB;QACvB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACJ"}
package/esm/struct.js CHANGED
@@ -1,5 +1,5 @@
1
- import { __awaiter } from "tslib";
2
1
  import { StructDefaultOptions, StructValue } from './basic';
2
+ import { Syncbird } from "./syncbird";
3
3
  import { ArrayBufferFieldType, FixedLengthArrayBufferLikeFieldDefinition, NumberFieldDefinition, NumberFieldType, StringFieldType, Uint8ClampedArrayFieldType, VariableLengthArrayBufferLikeFieldDefinition } from './types';
4
4
  export class Struct {
5
5
  constructor(options) {
@@ -111,14 +111,14 @@ export class Struct {
111
111
  return this.number(name, NumberFieldType.Uint64, _typescriptType);
112
112
  }
113
113
  /**
114
- * Adds some extra fields into every Struct value.
114
+ * Adds some extra properties into every `Struct` value.
115
115
  *
116
- * Extra fields will not affect serialize or deserialize process.
116
+ * Extra properties will not affect serialize or deserialize process.
117
117
  *
118
- * Multiple calls to `extra` will merge all values together.
118
+ * Multiple calls to `extra` will merge all properties together.
119
119
  *
120
120
  * @param value
121
- * An object containing anything you want to add to the result object. Accessors and methods are also allowed.
121
+ * An object containing properties to be added to the result value. Accessors and methods are also allowed.
122
122
  */
123
123
  extra(value) {
124
124
  Object.assign(this._extra, Object.getOwnPropertyDescriptors(value));
@@ -128,14 +128,24 @@ export class Struct {
128
128
  this._postDeserialized = callback;
129
129
  return this;
130
130
  }
131
- deserialize(context) {
132
- return __awaiter(this, void 0, void 0, function* () {
133
- const value = new StructValue();
134
- Object.defineProperties(value.value, this._extra);
135
- for (const [name, definition] of this._fields) {
136
- const fieldValue = yield definition.deserialize(this.options, context, value);
137
- value.set(name, fieldValue);
138
- }
131
+ deserialize(stream) {
132
+ const value = new StructValue();
133
+ Object.defineProperties(value.value, this._extra);
134
+ return Syncbird.try(() => {
135
+ const iterator = this._fields[Symbol.iterator]();
136
+ const iterate = () => {
137
+ const result = iterator.next();
138
+ if (result.done) {
139
+ return value;
140
+ }
141
+ const [name, definition] = result.value;
142
+ return Syncbird.resolve(definition.deserialize(this.options, stream, value)).then(fieldValue => {
143
+ value.set(name, fieldValue);
144
+ return iterate();
145
+ });
146
+ };
147
+ return iterate();
148
+ }).then(value => {
139
149
  if (this._postDeserialized) {
140
150
  const object = value.value;
141
151
  const result = this._postDeserialized.call(object, object);
@@ -144,12 +154,12 @@ export class Struct {
144
154
  }
145
155
  }
146
156
  return value.value;
147
- });
157
+ }).valueOrPromise();
148
158
  }
149
- serialize(init, context) {
159
+ serialize(init) {
150
160
  const value = new StructValue();
151
161
  for (const [name, definition] of this._fields) {
152
- const fieldValue = definition.create(this.options, context, value, init[name]);
162
+ const fieldValue = definition.create(this.options, value, init[name]);
153
163
  value.set(name, fieldValue);
154
164
  }
155
165
  let structSize = 0;
@@ -164,7 +174,7 @@ export class Struct {
164
174
  const dataView = new DataView(buffer);
165
175
  let offset = 0;
166
176
  for (const { fieldValue, size } of fieldsInfo) {
167
- fieldValue.serialize(dataView, offset, context);
177
+ fieldValue.serialize(dataView, offset);
168
178
  offset += size;
169
179
  }
170
180
  return buffer;
package/esm/struct.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}