@yume-chan/struct 2.0.1 → 2.3.2

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/CHANGELOG.md CHANGED
@@ -1,34 +1,40 @@
1
1
  # Change Log - @yume-chan/struct
2
2
 
3
+ ## 2.3.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 8ba86f7: Fix an issue that some overloads of `buffer` (and `string`) ignores specified value converter
8
+
3
9
  ## 2.0.1
4
10
 
5
11
  ### Patch Changes
6
12
 
7
- - 0bcb9b8: Fix `buffer` and `struct` may not have correct size
13
+ - 0bcb9b8: Fix `buffer` and `struct` may not have correct size
8
14
 
9
15
  ## 2.0.0
10
16
 
11
17
  ### Major Changes
12
18
 
13
- - b79df96: Refactor struct package to allow `struct`s to be used as `field`
19
+ - b79df96: Refactor struct package to allow `struct`s to be used as `field`
14
20
 
15
21
  ### Patch Changes
16
22
 
17
- - Updated dependencies
18
- - @yume-chan/no-data-view@2.0.0
23
+ - Updated dependencies
24
+ - @yume-chan/no-data-view@2.0.0
19
25
 
20
26
  ## 1.0.1
21
27
 
22
28
  ### Patch Changes
23
29
 
24
- - 53688d3: Use PNPM workspace and Changesets to manage the monorepo.
30
+ - 53688d3: Use PNPM workspace and Changesets to manage the monorepo.
25
31
 
26
32
  Because Changesets doesn't support alpha versions (`0.x.x`), this version is `1.0.0`. Future versions will follow SemVer rules, for example, breaking API changes will introduce a new major version.
27
33
 
28
- - db8466f: Rewrite the struct API completely
29
- - db8466f: Improve tree-shaking by removing TypeScript enum and namespace
30
- - Updated dependencies [53688d3]
31
- - @yume-chan/no-data-view@1.0.1
34
+ - db8466f: Rewrite the struct API completely
35
+ - db8466f: Improve tree-shaking by removing TypeScript enum and namespace
36
+ - Updated dependencies [53688d3]
37
+ - @yume-chan/no-data-view@1.0.1
32
38
 
33
39
  This log was last generated on Tue, 18 Jun 2024 02:49:43 GMT and should not be manually modified.
34
40
 
@@ -38,7 +44,7 @@ Tue, 18 Jun 2024 02:49:43 GMT
38
44
 
39
45
  ### Updates
40
46
 
41
- - Rename some internal types to make them more distinguishable
47
+ - Rename some internal types to make them more distinguishable
42
48
 
43
49
  ## 0.0.23
44
50
 
@@ -64,10 +70,10 @@ Mon, 05 Jun 2023 02:51:41 GMT
64
70
 
65
71
  ### Updates
66
72
 
67
- - Rename `StructDeserializeStream` and `StructAsyncDeserializeStream` to `ExactReadable` and `AsyncExactReadable`. Rename its `read` method to `readExactly`. Add a `position` field so the caller can check how many bytes have been read.
68
- - Improve performance for decoding integers.
69
- - Rename `Struct#fields` to `Struct#concat`. Now `Struct#fields` returns an array of `[name: PropertyKey, definition: StructFieldDefinition<any, any, any>]` tuples.
70
- - Use ECMAScript private class fields syntax (supported by Chrome 74, Firefox 90, Safari 14.1 and Node.js 12.0.0).
73
+ - Rename `StructDeserializeStream` and `StructAsyncDeserializeStream` to `ExactReadable` and `AsyncExactReadable`. Rename its `read` method to `readExactly`. Add a `position` field so the caller can check how many bytes have been read.
74
+ - Improve performance for decoding integers.
75
+ - Rename `Struct#fields` to `Struct#concat`. Now `Struct#fields` returns an array of `[name: PropertyKey, definition: StructFieldDefinition<any, any, any>]` tuples.
76
+ - Use ECMAScript private class fields syntax (supported by Chrome 74, Firefox 90, Safari 14.1 and Node.js 12.0.0).
71
77
 
72
78
  ## 0.0.19
73
79
 
@@ -81,7 +87,7 @@ Wed, 25 Jan 2023 21:33:49 GMT
81
87
 
82
88
  ### Updates
83
89
 
84
- - Refactor number types for easier extending (see `ScrcpyFloatToInt16FieldDefinition` for an example)
90
+ - Refactor number types for easier extending (see `ScrcpyFloatToInt16FieldDefinition` for an example)
85
91
 
86
92
  ## 0.0.17
87
93
 
@@ -95,10 +101,10 @@ Sat, 28 May 2022 03:56:37 GMT
95
101
 
96
102
  ### Updates
97
103
 
98
- - Add support for custom TypeScript type for `uint8Array`
99
- - Upgrade TypeScript to 4.7.2 to enable Node.js ESM
100
- - Improve performance of `Struct#deserialize()` by up to 200%.
101
- - Remove `SyncBird`, it's replaced by `SyncPromise`, which is based on native Promise and is 200% faster.
104
+ - Add support for custom TypeScript type for `uint8Array`
105
+ - Upgrade TypeScript to 4.7.2 to enable Node.js ESM
106
+ - Improve performance of `Struct#deserialize()` by up to 200%.
107
+ - Remove `SyncBird`, it's replaced by `SyncPromise`, which is based on native Promise and is 200% faster.
102
108
 
103
109
  ## 0.0.15
104
110
 
@@ -118,8 +124,8 @@ Thu, 28 Apr 2022 01:23:53 GMT
118
124
 
119
125
  ### Updates
120
126
 
121
- - Fix an issue that `uint64` still deserialize to negative numbers
122
- - Fix an issue where `Syncbird` can't synchronously invoke `then` on some Bluebird internal methods (for example `reduce`)
127
+ - Fix an issue that `uint64` still deserialize to negative numbers
128
+ - Fix an issue where `Syncbird` can't synchronously invoke `then` on some Bluebird internal methods (for example `reduce`)
123
129
 
124
130
  ## 0.0.12
125
131
 
@@ -133,10 +139,10 @@ Sun, 03 Apr 2022 11:18:11 GMT
133
139
 
134
140
  ### Updates
135
141
 
136
- - Update to use Web Streams API
137
- - Improve compatibility with Node.js 12 ESM format
138
- - Update compatibility matrix
139
- - Update license year
142
+ - Update to use Web Streams API
143
+ - Improve compatibility with Node.js 12 ESM format
144
+ - Update compatibility matrix
145
+ - Update license year
140
146
 
141
147
  ## 0.0.10
142
148
 
@@ -144,7 +150,7 @@ Sun, 09 Jan 2022 15:52:20 GMT
144
150
 
145
151
  ### Updates
146
152
 
147
- - Add synchronized deserialize support
153
+ - Add synchronized deserialize support
148
154
 
149
155
  ## 0.0.9
150
156
 
package/esm/buffer.d.ts CHANGED
@@ -7,24 +7,69 @@ export interface Converter<From, To> {
7
7
  export interface BufferLengthConverter<K, KT> extends Converter<KT, number> {
8
8
  field: K;
9
9
  }
10
- export interface BufferLike {
11
- (length: number): Field<Uint8Array, never, never, Uint8Array>;
12
- <U>(length: number, converter: Converter<Uint8Array, U>): Field<U, never, never, Uint8Array>;
13
- <K extends string>(lengthField: K): Field<Uint8Array, K, Record<K, number>, Uint8Array>;
14
- <K extends string, U>(lengthField: K, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, number>, Uint8Array>;
15
- <K extends string, KT>(length: BufferLengthConverter<K, KT>): Field<Uint8Array, K, Record<K, KT>, Uint8Array>;
16
- <K extends string, KT, U>(length: BufferLengthConverter<K, KT>, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, KT>, Uint8Array>;
17
- <LengthOmitInit extends string, LengthDependencies>(length: Field<number, LengthOmitInit, LengthDependencies, number>): Field<Uint8Array, LengthOmitInit, LengthDependencies, Uint8Array>;
18
- <LengthOmitInit extends string, LengthDependencies, U>(length: Field<number, LengthOmitInit, LengthDependencies, number>, converter: Converter<Uint8Array, U>): Field<U, LengthOmitInit, LengthDependencies, Uint8Array>;
19
- }
20
- declare function _buffer(length: number): Field<Uint8Array, never, never, Uint8Array>;
21
- declare function _buffer<U>(length: number, converter: Converter<Uint8Array, U>): Field<U, never, never, Uint8Array>;
22
- declare function _buffer<K extends string>(lengthField: K): Field<Uint8Array, K, Record<K, number>, Uint8Array>;
23
- declare function _buffer<K extends string, U>(lengthField: K, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, number>, Uint8Array>;
24
- declare function _buffer<K extends string, KT>(length: BufferLengthConverter<K, KT>): Field<Uint8Array, K, Record<K, KT>, Uint8Array>;
25
- declare function _buffer<K extends string, KT, U>(length: BufferLengthConverter<K, KT>, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, KT>, Uint8Array>;
26
- declare function _buffer<LengthOmitInit extends string, LengthDependencies>(length: Field<number, LengthOmitInit, LengthDependencies, number>): Field<Uint8Array, LengthOmitInit, LengthDependencies, Uint8Array>;
27
- declare function _buffer<LengthOmitInit extends string, LengthDependencies, U>(length: Field<number, LengthOmitInit, LengthDependencies, number>, converter: Converter<Uint8Array, U>): Field<U, LengthOmitInit, LengthDependencies, Uint8Array>;
28
- export declare const buffer: typeof _buffer;
29
- export {};
10
+ /**
11
+ * Create a fixed-length `Uint8Array` field.
12
+ *
13
+ * @param length Length of the field
14
+ */
15
+ export declare function buffer(length: number): Field<Uint8Array, never, never, Uint8Array>;
16
+ /**
17
+ * Create a custom-typed field, backed by a fixed-length `Uint8Array`.
18
+ *
19
+ * @param length Length of the field
20
+ * @param converter A value converter to convert between `Uint8Array` and the target type
21
+ */
22
+ export declare function buffer<U>(length: number, converter: Converter<Uint8Array, U>): Field<U, never, never, Uint8Array>;
23
+ /**
24
+ * Create a variable-length `Uint8Array` field.
25
+ * The length is determined by another number-typed field.
26
+ *
27
+ * @param lengthField Name of the length field. Must be declared before this field
28
+ */
29
+ export declare function buffer<K extends string>(lengthField: K): Field<Uint8Array, K, Record<K, number>, Uint8Array>;
30
+ /**
31
+ * Create a custom-typed field, backed by a variable-length `Uint8Array`.
32
+ * The length is determined by another number-typed field.
33
+ *
34
+ * @param lengthField Name of the length field. Must be declared before this field
35
+ * @param converter A value converter to convert between `Uint8Array` and the target type
36
+ */
37
+ export declare function buffer<K extends string, U>(lengthField: K, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, number>, Uint8Array>;
38
+ /**
39
+ * Create a variable-length `Uint8Array` field.
40
+ * The length is determined by converting another field to `number`.
41
+ *
42
+ * @param length
43
+ * Name of the length field,
44
+ * and a converter to convert between source type and `number`.
45
+ * Must be declared before this field
46
+ */
47
+ export declare function buffer<K extends string, KT>(length: BufferLengthConverter<K, KT>): Field<Uint8Array, K, Record<K, KT>, Uint8Array>;
48
+ /**
49
+ * Create a custom-typed field, backed by a variable-length `Uint8Array`.
50
+ * The length is determined by converting another field to `number`.
51
+ *
52
+ * @param length
53
+ * Name of the length field,
54
+ * and a converter to convert between source type and `number`.
55
+ * Must be declared before this field
56
+ * @param converter
57
+ * A value converter to convert between `Uint8Array` and the target type
58
+ */
59
+ export declare function buffer<K extends string, KT, U>(length: BufferLengthConverter<K, KT>, converter: Converter<Uint8Array, U>): Field<U, K, Record<K, KT>, Uint8Array>;
60
+ /**
61
+ * Create a length field, and a variable-length `Uint8Array` field.
62
+ * This is a shortcut when the length field is directly before the data field.
63
+ *
64
+ * @param length The length field declaration
65
+ */
66
+ export declare function buffer<LengthOmitInit extends string, LengthDependencies>(length: Field<number, LengthOmitInit, LengthDependencies, number>): Field<Uint8Array, LengthOmitInit, LengthDependencies, Uint8Array>;
67
+ /**
68
+ * Create a length field, and a custom-typed field, backed by a variable-length `Uint8Array`.
69
+ * This is a shortcut when the length field is directly before the data field.
70
+ *
71
+ * @param length The length field declaration
72
+ * @param converter A value converter to convert between `Uint8Array` and the target type
73
+ */
74
+ export declare function buffer<LengthOmitInit extends string, LengthDependencies, U>(length: Field<number, LengthOmitInit, LengthDependencies, number>, converter: Converter<Uint8Array, U>): Field<U, LengthOmitInit, LengthDependencies, Uint8Array>;
30
75
  //# sourceMappingURL=buffer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../src/buffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../src/buffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGR,KAAK,EACR,MAAM,kBAAkB,CAAC;AAG1B,eAAO,MAAM,eAAe,yBAAoB,CAAC;AAmBjD,MAAM,WAAW,SAAS,CAAC,IAAI,EAAE,EAAE;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;IAC7B,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAE,SAAQ,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC;IACvE,KAAK,EAAE,CAAC,CAAC;CACZ;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAClB,MAAM,EAAE,MAAM,GACf,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAC/C;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,GACpC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAEtC;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EACnC,WAAW,EAAE,CAAC,GACf,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AACvD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EACtC,WAAW,EAAE,CAAC,EACd,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,GACpC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AAE9C;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EACvC,MAAM,EAAE,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,GACrC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AACnD;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,EAC1C,MAAM,EAAE,qBAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,EACpC,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,GACpC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,cAAc,SAAS,MAAM,EAAE,kBAAkB,EACpE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,CAAC,GAClE,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC;AACrE;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,cAAc,SAAS,MAAM,EAAE,kBAAkB,EAAE,CAAC,EACvE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,CAAC,EACjE,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,GACpC,KAAK,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC"}
package/esm/buffer.js CHANGED
@@ -1,82 +1,89 @@
1
1
  import { field } from "./field/index.js";
2
2
  export const EmptyUint8Array = new Uint8Array(0);
3
+ function copyMaybeDifferentLength(dest, source, index, length) {
4
+ if (source.length < length) {
5
+ dest.set(source, index);
6
+ // Clear trailing bytes
7
+ dest.fill(0, index + source.length, index + length);
8
+ }
9
+ else if (source.length === length) {
10
+ dest.set(source, index);
11
+ }
12
+ else {
13
+ dest.set(source.subarray(0, length), index);
14
+ }
15
+ }
3
16
  /* #__NO_SIDE_EFFECTS__ */
4
- function _buffer(lengthOrField, converter) {
17
+ export function buffer(lengthOrField, converter) {
5
18
  // Fixed length
6
19
  if (typeof lengthOrField === "number") {
7
- if (converter) {
8
- if (lengthOrField === 0) {
9
- return field(0, "byob", () => { },
20
+ let serialize;
21
+ let deserialize;
22
+ let init;
23
+ if (lengthOrField === 0) {
24
+ serialize = () => { };
25
+ if (converter) {
10
26
  // eslint-disable-next-line require-yield
11
- function* () {
27
+ deserialize = function* () {
12
28
  return converter.convert(EmptyUint8Array);
13
- });
29
+ };
30
+ }
31
+ else {
32
+ // eslint-disable-next-line require-yield
33
+ deserialize = function* () {
34
+ return EmptyUint8Array;
35
+ };
14
36
  }
15
- return field(lengthOrField, "byob", (value, { buffer, index }) => {
16
- buffer.set(value.slice(0, lengthOrField), index);
17
- }, function* (then, reader) {
18
- const array = yield* then(reader.readExactly(lengthOrField));
19
- return converter.convert(array);
20
- }, {
21
- init(value) {
22
- return converter.back(value);
23
- },
24
- });
25
37
  }
26
- if (lengthOrField === 0) {
27
- return field(0, "byob", () => { },
28
- // eslint-disable-next-line require-yield
29
- function* () {
30
- return EmptyUint8Array;
31
- });
38
+ else {
39
+ serialize = (value, { buffer, index }) => copyMaybeDifferentLength(buffer, value, index, lengthOrField);
40
+ if (converter) {
41
+ deserialize = function* (then, reader) {
42
+ const array = reader.readExactly(lengthOrField);
43
+ return converter.convert(yield* then(array));
44
+ };
45
+ init = (value) => converter.back(value);
46
+ }
47
+ else {
48
+ // eslint-disable-next-line require-yield
49
+ deserialize = function* (_then, reader) {
50
+ const array = reader.readExactly(lengthOrField);
51
+ return array;
52
+ };
53
+ }
32
54
  }
33
- return field(lengthOrField, "byob", (value, { buffer, index }) => {
34
- buffer.set(value.slice(0, lengthOrField), index);
35
- },
36
- // eslint-disable-next-line require-yield
37
- function* (_then, reader) {
38
- return reader.readExactly(lengthOrField);
39
- });
55
+ return field(lengthOrField, "byob", serialize, deserialize, { init });
40
56
  }
41
57
  // Declare length field
42
58
  // Some field types are `function`s
43
59
  if ((typeof lengthOrField === "object" ||
44
60
  typeof lengthOrField === "function") &&
45
61
  "serialize" in lengthOrField) {
62
+ let deserialize;
63
+ let init;
46
64
  if (converter) {
47
- return field(lengthOrField.size, "default", (value, { littleEndian }) => {
48
- if (lengthOrField.type === "default") {
49
- const lengthBuffer = lengthOrField.serialize(value.length, { littleEndian });
50
- const result = new Uint8Array(lengthBuffer.length + value.length);
51
- result.set(lengthBuffer, 0);
52
- result.set(value, lengthBuffer.length);
53
- return result;
54
- }
55
- else {
56
- const result = new Uint8Array(lengthOrField.size + value.length);
57
- lengthOrField.serialize(value.length, {
58
- buffer: result,
59
- index: 0,
60
- littleEndian,
61
- });
62
- result.set(value, lengthOrField.size);
63
- return result;
64
- }
65
- }, function* (then, reader, context) {
65
+ deserialize = function* (then, reader, context) {
66
66
  const length = yield* then(lengthOrField.deserialize(reader, context));
67
- const array = yield* then(reader.readExactly(length));
68
- return converter.convert(array);
69
- }, {
70
- init(value) {
71
- return converter.back(value);
72
- },
73
- });
67
+ const array = length !== 0 ? reader.readExactly(length) : EmptyUint8Array;
68
+ return converter.convert(yield* then(array));
69
+ };
70
+ init = (value) => converter.back(value);
71
+ }
72
+ else {
73
+ deserialize = function* (then, reader, context) {
74
+ const length = yield* then(lengthOrField.deserialize(reader, context));
75
+ const array = length !== 0 ? reader.readExactly(length) : EmptyUint8Array;
76
+ return array;
77
+ };
74
78
  }
75
79
  return field(lengthOrField.size, "default", (value, { littleEndian }) => {
76
80
  if (lengthOrField.type === "default") {
77
81
  const lengthBuffer = lengthOrField.serialize(value.length, {
78
82
  littleEndian,
79
83
  });
84
+ if (value.length === 0) {
85
+ return lengthBuffer;
86
+ }
80
87
  const result = new Uint8Array(lengthBuffer.length + value.length);
81
88
  result.set(lengthBuffer, 0);
82
89
  result.set(value, lengthBuffer.length);
@@ -92,79 +99,69 @@ function _buffer(lengthOrField, converter) {
92
99
  result.set(value, lengthOrField.size);
93
100
  return result;
94
101
  }
95
- }, function* (then, reader, context) {
96
- const length = yield* then(lengthOrField.deserialize(reader, context));
97
- return yield* then(reader.readExactly(length));
98
- });
102
+ }, deserialize, { init });
99
103
  }
100
- // Reference exiting length field
104
+ // Reference existing length field
101
105
  if (typeof lengthOrField === "string") {
106
+ let deserialize;
107
+ let init;
102
108
  if (converter) {
103
- return field(0, "default", (source) => source,
109
+ deserialize = function* (then, reader, { dependencies }) {
110
+ const length = dependencies[lengthOrField];
111
+ const array = length !== 0 ? reader.readExactly(length) : EmptyUint8Array;
112
+ return converter.convert(yield* then(array));
113
+ };
114
+ init = (value, dependencies) => {
115
+ const array = converter.back(value);
116
+ dependencies[lengthOrField] = array.length;
117
+ return array;
118
+ };
119
+ }
120
+ else {
104
121
  // eslint-disable-next-line require-yield
105
- function* (_then, reader, { dependencies }) {
122
+ deserialize = function* (_then, reader, { dependencies }) {
106
123
  const length = dependencies[lengthOrField];
107
- if (length === 0) {
108
- return EmptyUint8Array;
109
- }
110
- return reader.readExactly(length);
111
- }, {
112
- init(value, dependencies) {
113
- const array = converter.back(value);
114
- dependencies[lengthOrField] = array.length;
115
- return array;
116
- },
117
- });
124
+ const array = length !== 0 ? reader.readExactly(length) : EmptyUint8Array;
125
+ return array;
126
+ };
127
+ init = (value, dependencies) => {
128
+ const array = value;
129
+ dependencies[lengthOrField] = array.length;
130
+ return array;
131
+ };
118
132
  }
119
- return field(0, "default", (source) => source,
120
- // eslint-disable-next-line require-yield
121
- function* (_then, reader, { dependencies }) {
122
- const length = dependencies[lengthOrField];
123
- if (length === 0) {
124
- return EmptyUint8Array;
125
- }
126
- return reader.readExactly(length);
127
- }, {
128
- init(value, dependencies) {
129
- dependencies[lengthOrField] = value.length;
130
- return undefined;
131
- },
132
- });
133
+ return field(0, "default", (source) => source, deserialize, { init });
133
134
  }
134
- // Reference existing length field + converter
135
+ let deserialize;
136
+ let init;
137
+ // Reference existing length field + length converter
135
138
  if (converter) {
136
- return field(0, "default", (source) => source,
139
+ deserialize = function* (then, reader, { dependencies }) {
140
+ const rawLength = dependencies[lengthOrField.field];
141
+ const length = lengthOrField.convert(rawLength);
142
+ const array = length !== 0 ? reader.readExactly(length) : EmptyUint8Array;
143
+ return converter.convert(yield* then(array));
144
+ };
145
+ init = (value, dependencies) => {
146
+ const array = converter.back(value);
147
+ dependencies[lengthOrField.field] = lengthOrField.back(array.length);
148
+ return array;
149
+ };
150
+ }
151
+ else {
137
152
  // eslint-disable-next-line require-yield
138
- function* (_then, reader, { dependencies }) {
153
+ deserialize = function* (_then, reader, { dependencies }) {
139
154
  const rawLength = dependencies[lengthOrField.field];
140
155
  const length = lengthOrField.convert(rawLength);
141
- if (length === 0) {
142
- return EmptyUint8Array;
143
- }
144
- return reader.readExactly(length);
145
- }, {
146
- init(value, dependencies) {
147
- const array = converter.back(value);
148
- dependencies[lengthOrField.field] = lengthOrField.back(array.length);
149
- return array;
150
- },
151
- });
156
+ const array = length !== 0 ? reader.readExactly(length) : EmptyUint8Array;
157
+ return array;
158
+ };
159
+ init = (value, dependencies) => {
160
+ const array = value;
161
+ dependencies[lengthOrField.field] = lengthOrField.back(array.length);
162
+ return array;
163
+ };
152
164
  }
153
- return field(0, "default", (source) => source,
154
- // eslint-disable-next-line require-yield
155
- function* (_then, reader, { dependencies }) {
156
- const rawLength = dependencies[lengthOrField.field];
157
- const length = lengthOrField.convert(rawLength);
158
- if (length === 0) {
159
- return EmptyUint8Array;
160
- }
161
- return reader.readExactly(length);
162
- }, {
163
- init(value, dependencies) {
164
- dependencies[lengthOrField.field] = lengthOrField.back(value.length);
165
- return undefined;
166
- },
167
- });
165
+ return field(0, "default", (source) => source, deserialize, { init });
168
166
  }
169
- export const buffer = _buffer;
170
167
  //# sourceMappingURL=buffer.js.map
package/esm/buffer.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"buffer.js","sourceRoot":"","sources":["../src/buffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffer.js","sourceRoot":"","sources":["../src/buffer.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,10 @@ export interface FieldSerializer<T> {
15
15
  }
16
16
  export interface Field<T, OmitInit extends string, D, Raw = T> extends FieldSerializer<Raw>, FieldDeserializer<T, D> {
17
17
  omitInit: OmitInit | undefined;
18
- init?(value: T, dependencies: D): Raw | undefined;
18
+ /**
19
+ * A function to convert deserialized value back to raw value for serialization.
20
+ */
21
+ init?(value: T, dependencies: D): Raw;
19
22
  }
20
23
  export interface FieldDeserializeContext<D> {
21
24
  littleEndian: boolean;
@@ -28,6 +31,9 @@ export interface FieldDeserializer<T, D> {
28
31
  export interface FieldOptions<T, OmitInit extends string, D, Raw = T> {
29
32
  omitInit?: OmitInit;
30
33
  dependencies?: D;
31
- init?: (value: T, dependencies: D) => Raw | undefined;
34
+ /**
35
+ * A function to convert deserialized value back to raw value for serialization.
36
+ */
37
+ init?: ((value: T, dependencies: D) => Raw) | undefined;
32
38
  }
33
39
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAExE,MAAM,WAAW,4BAA4B;IACzC,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,yBACb,SAAQ,4BAA4B;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAC9B,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,4BAA4B,GAAG,UAAU,CAAC;IACxE,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAAC;CACpE;AAED,MAAM,WAAW,KAAK,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CACzD,SAAQ,eAAe,CAAC,GAAG,CAAC,EACxB,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3B,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE/B,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC;CACrD;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC;IACtC,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,CAAC,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC;IACnC,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3E,WAAW,CACP,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GACpC,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC;IAChE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,KAAK,GAAG,GAAG,SAAS,CAAC;CACzD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/field/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAExE,MAAM,WAAW,4BAA4B;IACzC,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,yBACb,SAAQ,4BAA4B;IACpC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAC9B,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,4BAA4B,GAAG,UAAU,CAAC;IACxE,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,yBAAyB,GAAG,MAAM,CAAC;CACpE;AAED,MAAM,WAAW,KAAK,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,CACzD,SAAQ,eAAe,CAAC,GAAG,CAAC,EACxB,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3B,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAE/B;;OAEG;IACH,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,GAAG,CAAC;CACzC;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC;IACtC,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,CAAC,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC;IACnC,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3E,WAAW,CACP,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GACpC,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,EAAE,QAAQ,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC;IAChE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;CAC3D"}
package/esm/struct.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Field, FieldDeserializer } from "./field/index.js";
2
- import type { StructDeserializer, StructSerializer } from "./types.js";
2
+ import type { StructDeserializer, StructLike, StructSerializer } from "./types.js";
3
3
  export type StructField = Field<unknown, string, unknown, unknown> | (StructSerializer<unknown> & StructDeserializer<unknown>);
4
4
  export type StructFields = Record<string, StructField>;
5
5
  export type FieldsValue<T extends StructFields> = {
@@ -25,7 +25,7 @@ export interface Struct<Fields extends StructFields, Extra extends Record<Proper
25
25
  fields: Fields;
26
26
  extra: Extra;
27
27
  }
28
- export declare function struct<Fields extends Record<string, Field<unknown, string, Partial<FieldsValue<Fields>>, unknown> | (StructSerializer<unknown> & StructDeserializer<unknown>)>, Extra extends Record<PropertyKey, unknown> | undefined = undefined, PostDeserialize = FieldsValue<Fields> & ExtraToIntersection<Extra>>(fields: Fields, options: {
28
+ export declare function struct<Fields extends Record<string, Field<unknown, string, Partial<FieldsValue<Fields>>, unknown> | StructLike<unknown>>, Extra extends Record<PropertyKey, unknown> | undefined = undefined, PostDeserialize = FieldsValue<Fields> & ExtraToIntersection<Extra>>(fields: Fields, options: {
29
29
  littleEndian: boolean;
30
30
  extra?: (Extra & ThisType<FieldsValue<Fields>>) | undefined;
31
31
  postDeserialize?: ((this: FieldsValue<Fields> & ExtraToIntersection<Extra>, value: FieldsValue<Fields> & ExtraToIntersection<Extra>) => PostDeserialize) | undefined;
@@ -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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"}