@yume-chan/struct 2.0.0 → 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,28 +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
+
9
+ ## 2.0.1
10
+
11
+ ### Patch Changes
12
+
13
+ - 0bcb9b8: Fix `buffer` and `struct` may not have correct size
14
+
3
15
  ## 2.0.0
4
16
 
5
17
  ### Major Changes
6
18
 
7
- - 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`
8
20
 
9
21
  ### Patch Changes
10
22
 
11
- - Updated dependencies
12
- - @yume-chan/no-data-view@2.0.0
23
+ - Updated dependencies
24
+ - @yume-chan/no-data-view@2.0.0
13
25
 
14
26
  ## 1.0.1
15
27
 
16
28
  ### Patch Changes
17
29
 
18
- - 53688d3: Use PNPM workspace and Changesets to manage the monorepo.
30
+ - 53688d3: Use PNPM workspace and Changesets to manage the monorepo.
19
31
 
20
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.
21
33
 
22
- - db8466f: Rewrite the struct API completely
23
- - db8466f: Improve tree-shaking by removing TypeScript enum and namespace
24
- - Updated dependencies [53688d3]
25
- - @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
26
38
 
27
39
  This log was last generated on Tue, 18 Jun 2024 02:49:43 GMT and should not be manually modified.
28
40
 
@@ -32,7 +44,7 @@ Tue, 18 Jun 2024 02:49:43 GMT
32
44
 
33
45
  ### Updates
34
46
 
35
- - Rename some internal types to make them more distinguishable
47
+ - Rename some internal types to make them more distinguishable
36
48
 
37
49
  ## 0.0.23
38
50
 
@@ -58,10 +70,10 @@ Mon, 05 Jun 2023 02:51:41 GMT
58
70
 
59
71
  ### Updates
60
72
 
61
- - 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.
62
- - Improve performance for decoding integers.
63
- - Rename `Struct#fields` to `Struct#concat`. Now `Struct#fields` returns an array of `[name: PropertyKey, definition: StructFieldDefinition<any, any, any>]` tuples.
64
- - 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).
65
77
 
66
78
  ## 0.0.19
67
79
 
@@ -75,7 +87,7 @@ Wed, 25 Jan 2023 21:33:49 GMT
75
87
 
76
88
  ### Updates
77
89
 
78
- - Refactor number types for easier extending (see `ScrcpyFloatToInt16FieldDefinition` for an example)
90
+ - Refactor number types for easier extending (see `ScrcpyFloatToInt16FieldDefinition` for an example)
79
91
 
80
92
  ## 0.0.17
81
93
 
@@ -89,10 +101,10 @@ Sat, 28 May 2022 03:56:37 GMT
89
101
 
90
102
  ### Updates
91
103
 
92
- - Add support for custom TypeScript type for `uint8Array`
93
- - Upgrade TypeScript to 4.7.2 to enable Node.js ESM
94
- - Improve performance of `Struct#deserialize()` by up to 200%.
95
- - 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.
96
108
 
97
109
  ## 0.0.15
98
110
 
@@ -112,8 +124,8 @@ Thu, 28 Apr 2022 01:23:53 GMT
112
124
 
113
125
  ### Updates
114
126
 
115
- - Fix an issue that `uint64` still deserialize to negative numbers
116
- - 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`)
117
129
 
118
130
  ## 0.0.12
119
131
 
@@ -127,10 +139,10 @@ Sun, 03 Apr 2022 11:18:11 GMT
127
139
 
128
140
  ### Updates
129
141
 
130
- - Update to use Web Streams API
131
- - Improve compatibility with Node.js 12 ESM format
132
- - Update compatibility matrix
133
- - 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
134
146
 
135
147
  ## 0.0.10
136
148
 
@@ -138,7 +150,7 @@ Sun, 09 Jan 2022 15:52:20 GMT
138
150
 
139
151
  ### Updates
140
152
 
141
- - Add synchronized deserialize support
153
+ - Add synchronized deserialize support
142
154
 
143
155
  ## 0.0.9
144
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(0, "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(0, "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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"}