@yume-chan/struct 0.0.16 → 0.0.18
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.json +18 -0
- package/CHANGELOG.md +13 -1
- package/LICENSE +1 -1
- package/esm/basic/definition.d.ts +4 -4
- package/esm/basic/definition.d.ts.map +1 -1
- package/esm/basic/definition.js.map +1 -1
- package/esm/basic/field-value.d.ts +7 -7
- package/esm/basic/field-value.d.ts.map +1 -1
- package/esm/basic/field-value.js +2 -2
- package/esm/basic/field-value.js.map +1 -1
- package/esm/basic/stream.d.ts +1 -1
- package/esm/basic/stream.d.ts.map +1 -1
- package/esm/basic/struct-value.d.ts +2 -2
- package/esm/basic/struct-value.d.ts.map +1 -1
- package/esm/basic/struct-value.js +10 -3
- package/esm/basic/struct-value.js.map +1 -1
- package/esm/struct.d.ts +19 -19
- package/esm/struct.d.ts.map +1 -1
- package/esm/struct.js +11 -10
- package/esm/struct.js.map +1 -1
- package/esm/sync-promise.d.ts.map +1 -1
- package/esm/sync-promise.js +4 -4
- package/esm/sync-promise.js.map +1 -1
- package/esm/types/bigint.d.ts +4 -4
- package/esm/types/bigint.d.ts.map +1 -1
- package/esm/types/bigint.js +6 -6
- package/esm/types/bigint.js.map +1 -1
- package/esm/types/buffer/base.d.ts +4 -4
- package/esm/types/buffer/base.d.ts.map +1 -1
- package/esm/types/buffer/base.js +5 -6
- package/esm/types/buffer/base.js.map +1 -1
- package/esm/types/buffer/fixed-length.d.ts.map +1 -1
- package/esm/types/buffer/fixed-length.js +0 -1
- package/esm/types/buffer/fixed-length.js.map +1 -1
- package/esm/types/buffer/variable-length.d.ts +7 -7
- package/esm/types/buffer/variable-length.d.ts.map +1 -1
- package/esm/types/buffer/variable-length.js +4 -4
- package/esm/types/buffer/variable-length.js.map +1 -1
- package/esm/types/number.d.ts +16 -22
- package/esm/types/number.d.ts.map +1 -1
- package/esm/types/number.js +89 -40
- package/esm/types/number.js.map +1 -1
- package/esm/utils.d.ts +6 -6
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +1 -8
- package/esm/utils.js.map +1 -1
- package/package.json +14 -12
- package/src/basic/definition.ts +12 -9
- package/src/basic/field-value.ts +18 -15
- package/src/basic/stream.ts +3 -1
- package/src/basic/struct-value.ts +17 -11
- package/src/struct.ts +208 -203
- package/src/sync-promise.ts +32 -12
- package/src/types/bigint.ts +58 -31
- package/src/types/buffer/base.ts +53 -35
- package/src/types/buffer/fixed-length.ts +3 -8
- package/src/types/buffer/variable-length.ts +41 -24
- package/src/types/number.ts +131 -79
- package/src/utils.ts +30 -8
- package/tsconfig.build.json +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/tsconfig.test.json +0 -8
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yume-chan/struct",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.0.18",
|
|
6
|
+
"tag": "@yume-chan/struct_v0.0.18",
|
|
7
|
+
"date": "Wed, 25 Jan 2023 21:33:49 GMT",
|
|
8
|
+
"comments": {
|
|
9
|
+
"none": [
|
|
10
|
+
{
|
|
11
|
+
"comment": "Refactor number types for easier extending (see `ScrcpyFloatToInt16FieldDefinition` for an example)"
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"version": "0.0.17",
|
|
18
|
+
"tag": "@yume-chan/struct_v0.0.17",
|
|
19
|
+
"date": "Tue, 18 Oct 2022 09:32:30 GMT",
|
|
20
|
+
"comments": {}
|
|
21
|
+
},
|
|
4
22
|
{
|
|
5
23
|
"version": "0.0.16",
|
|
6
24
|
"tag": "@yume-chan/struct_v0.0.16",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
# Change Log - @yume-chan/struct
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Wed, 25 Jan 2023 21:33:49 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 0.0.18
|
|
6
|
+
Wed, 25 Jan 2023 21:33:49 GMT
|
|
7
|
+
|
|
8
|
+
### Updates
|
|
9
|
+
|
|
10
|
+
- Refactor number types for easier extending (see `ScrcpyFloatToInt16FieldDefinition` for an example)
|
|
11
|
+
|
|
12
|
+
## 0.0.17
|
|
13
|
+
Tue, 18 Oct 2022 09:32:30 GMT
|
|
14
|
+
|
|
15
|
+
_Version update only_
|
|
4
16
|
|
|
5
17
|
## 0.0.16
|
|
6
18
|
Sat, 28 May 2022 03:56:37 GMT
|
package/LICENSE
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
1
|
+
import { type StructFieldValue } from "./field-value.js";
|
|
2
|
+
import { type StructOptions } from "./options.js";
|
|
3
|
+
import { type StructAsyncDeserializeStream, type StructDeserializeStream } from "./stream.js";
|
|
4
|
+
import { type StructValue } from "./struct-value.js";
|
|
5
5
|
/**
|
|
6
6
|
* A field definition defines how to deserialize a field.
|
|
7
7
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;GAMG;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,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,GACd,gBAAgB,CAAC,IAAI,CAAC;IAEzB;;;;;OAKG;aACa,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,WAAW,GACzB,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,MAAM,OAAgB,qBAAqB;IAKvC;;;OAGG;IACa,MAAM,CAAU;IAEhC;;;OAGG;IACa,YAAY,CAAgB;IAE5B,OAAO,CAAW;IAElC,YAAmB,OAAiB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CAkCJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
1
|
+
import { type StructFieldDefinition } from "./definition.js";
|
|
2
|
+
import { type StructOptions } from "./options.js";
|
|
3
|
+
import { type StructValue } from "./struct-value.js";
|
|
4
4
|
/**
|
|
5
5
|
* A field value defines how to serialize a field.
|
|
6
6
|
*
|
|
@@ -15,8 +15,8 @@ export declare abstract class StructFieldValue<TDefinition extends StructFieldDe
|
|
|
15
15
|
/** Gets the associated `Struct` instance */
|
|
16
16
|
readonly struct: StructValue;
|
|
17
17
|
get hasCustomAccessors(): boolean;
|
|
18
|
-
protected value: TDefinition[
|
|
19
|
-
constructor(definition: TDefinition, options: Readonly<StructOptions>, struct: StructValue, value: TDefinition[
|
|
18
|
+
protected value: TDefinition["TValue"];
|
|
19
|
+
constructor(definition: TDefinition, options: Readonly<StructOptions>, struct: StructValue, value: TDefinition["TValue"]);
|
|
20
20
|
/**
|
|
21
21
|
* Gets size of this field. By default, it returns its `definition`'s size.
|
|
22
22
|
*
|
|
@@ -26,11 +26,11 @@ export declare abstract class StructFieldValue<TDefinition extends StructFieldDe
|
|
|
26
26
|
/**
|
|
27
27
|
* When implemented in derived classes, reads current field's value.
|
|
28
28
|
*/
|
|
29
|
-
get(): TDefinition[
|
|
29
|
+
get(): TDefinition["TValue"];
|
|
30
30
|
/**
|
|
31
31
|
* When implemented in derived classes, updates current field's value.
|
|
32
32
|
*/
|
|
33
|
-
set(value: TDefinition[
|
|
33
|
+
set(value: TDefinition["TValue"]): void;
|
|
34
34
|
/**
|
|
35
35
|
* When implemented in derived classes, serializes this field into `dataView` at `offset`
|
|
36
36
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-value.d.ts","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"field-value.d.ts","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;GAKG;AACH,8BAAsB,gBAAgB,CAClC,WAAW,SAAS,qBAAqB,CACrC,GAAG,EACH,GAAG,EACH,GAAG,CACN,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAExC,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,IAAW,kBAAkB,IAAI,OAAO,CAKvC;IAED,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,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CACtE"}
|
package/esm/basic/field-value.js
CHANGED
|
@@ -12,8 +12,8 @@ export class StructFieldValue {
|
|
|
12
12
|
/** Gets the associated `Struct` instance */
|
|
13
13
|
struct;
|
|
14
14
|
get hasCustomAccessors() {
|
|
15
|
-
return this.get !== StructFieldValue.prototype.get ||
|
|
16
|
-
this.set !== StructFieldValue.prototype.set;
|
|
15
|
+
return (this.get !== StructFieldValue.prototype.get ||
|
|
16
|
+
this.set !== StructFieldValue.prototype.set);
|
|
17
17
|
}
|
|
18
18
|
value;
|
|
19
19
|
constructor(definition, options, struct, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-value.js","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,OAAgB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"field-value.js","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,OAAgB,gBAAgB;IAOlC,6DAA6D;IAC7C,UAAU,CAAc;IAExC,kDAAkD;IAClC,OAAO,CAA0B;IAEjD,4CAA4C;IAC5B,MAAM,CAAc;IAEpC,IAAW,kBAAkB;QACzB,OAAO,CACH,IAAI,CAAC,GAAG,KAAK,gBAAgB,CAAC,SAAS,CAAC,GAAG;YAC3C,IAAI,CAAC,GAAG,KAAK,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAC9C,CAAC;IACN,CAAC;IAES,KAAK,CAAwB;IAEvC,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;CAMJ"}
|
package/esm/basic/stream.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/basic/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/basic/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,MAAM,WAAW,uBAAuB;IACpC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;CACpC;AAED,MAAM,WAAW,4BAA4B;IACzC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;CACpD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type StructFieldValue } from "./field-value.js";
|
|
2
2
|
export declare const STRUCT_VALUE_SYMBOL: unique symbol;
|
|
3
3
|
/**
|
|
4
4
|
* A struct value is a map between keys in a struct and their field values.
|
|
@@ -8,7 +8,7 @@ export declare class StructValue {
|
|
|
8
8
|
* Gets the result struct value object
|
|
9
9
|
*/
|
|
10
10
|
readonly value: Record<PropertyKey, unknown>;
|
|
11
|
-
constructor(prototype:
|
|
11
|
+
constructor(prototype: object);
|
|
12
12
|
/**
|
|
13
13
|
* Sets a `StructFieldValue` for `key`
|
|
14
14
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct-value.d.ts","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"struct-value.d.ts","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,mBAAmB,eAAyB,CAAC;AAE1D;;GAEG;AACH,qBAAa,WAAW;IAMpB;;OAEG;IACH,SAAgB,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAEjC,SAAS,EAAE,MAAM;IAapC;;;;;OAKG;IACI,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAqBjE;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB;CAGlD"}
|
|
@@ -14,7 +14,10 @@ export class StructValue {
|
|
|
14
14
|
this.value = Object.create(prototype);
|
|
15
15
|
// PERF: `Object.defineProperty` is slow
|
|
16
16
|
// but we need it to be non-enumerable
|
|
17
|
-
Object.defineProperty(this.value, STRUCT_VALUE_SYMBOL, {
|
|
17
|
+
Object.defineProperty(this.value, STRUCT_VALUE_SYMBOL, {
|
|
18
|
+
enumerable: false,
|
|
19
|
+
value: this,
|
|
20
|
+
});
|
|
18
21
|
}
|
|
19
22
|
/**
|
|
20
23
|
* Sets a `StructFieldValue` for `key`
|
|
@@ -30,8 +33,12 @@ export class StructValue {
|
|
|
30
33
|
Object.defineProperty(this.value, name, {
|
|
31
34
|
configurable: true,
|
|
32
35
|
enumerable: true,
|
|
33
|
-
get() {
|
|
34
|
-
|
|
36
|
+
get() {
|
|
37
|
+
return fieldValue.get();
|
|
38
|
+
},
|
|
39
|
+
set(v) {
|
|
40
|
+
fieldValue.set(v);
|
|
41
|
+
},
|
|
35
42
|
});
|
|
36
43
|
}
|
|
37
44
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct-value.js","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,WAAW;IACpB,gBAAgB,CAAU,WAAW,
|
|
1
|
+
{"version":3,"file":"struct-value.js","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,WAAW;IACpB,gBAAgB,CAAU,WAAW,GAGjC,EAAE,CAAC;IAEP;;OAEG;IACa,KAAK,CAA+B;IAEpD,YAAmB,SAAiB;QAChC,6CAA6C;QAC7C,oDAAoD;QACpD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAiC,CAAC;QAEtE,wCAAwC;QACxC,sCAAsC;QACtC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE;YACnD,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACI,GAAG,CAAC,IAAiB,EAAE,UAA4B;QACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAEpC,wCAAwC;QACxC,oCAAoC;QACpC,IAAI,UAAU,CAAC,kBAAkB,EAAE;YAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;gBACpC,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,GAAG;oBACC,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC;gBAC5B,CAAC;gBACD,GAAG,CAAC,CAAC;oBACD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC;aACJ,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;SACvC;IACL,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,IAAiB;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,CAAC;IACnC,CAAC;CACJ"}
|
package/esm/struct.d.ts
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { StructAsyncDeserializeStream, StructDeserializeStream, StructFieldDefinition, StructOptions } from
|
|
2
|
-
import { BigIntFieldType,
|
|
3
|
-
import type
|
|
1
|
+
import { type StructAsyncDeserializeStream, type StructDeserializeStream, type StructFieldDefinition, type StructOptions } from "./basic/index.js";
|
|
2
|
+
import { BigIntFieldType, FixedLengthBufferLikeFieldDefinition, StringBufferFieldSubType, Uint8ArrayBufferFieldSubType, VariableLengthBufferLikeFieldDefinition, type BufferFieldSubType, type FixedLengthBufferLikeFieldOptions, type LengthField, type VariableLengthBufferLikeFieldOptions } from "./types/index.js";
|
|
3
|
+
import { type Evaluate, type Identity, type Overwrite } from "./utils.js";
|
|
4
4
|
export interface StructLike<TValue> {
|
|
5
5
|
deserialize(stream: StructDeserializeStream | StructAsyncDeserializeStream): Promise<TValue>;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* Extract the value type of the specified `Struct`
|
|
9
9
|
*/
|
|
10
|
-
export
|
|
10
|
+
export type StructValueType<T extends StructLike<unknown>> = Awaited<ReturnType<T["deserialize"]>>;
|
|
11
11
|
/**
|
|
12
12
|
* Create a new `Struct` type with `TDefinition` appended
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
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>>;
|
|
15
15
|
/**
|
|
16
16
|
* Similar to `ArrayBufferLikeFieldCreator`, but bind to `TType`
|
|
17
17
|
*/
|
|
18
18
|
interface BoundArrayBufferLikeFieldDefinitionCreator<TFields extends object, TOmitInitKey extends PropertyKey, TExtra extends object, TPostDeserialized, TType extends BufferFieldSubType<any, any>> {
|
|
19
|
-
<TName extends PropertyKey, TTypeScriptType = TType[
|
|
20
|
-
<TName extends PropertyKey, TLengthField extends LengthField<TFields>, TOptions extends VariableLengthBufferLikeFieldOptions<TFields, TLengthField>, TTypeScriptType = TType[
|
|
19
|
+
<TName extends PropertyKey, TTypeScriptType = TType["TTypeScriptType"]>(name: TName, options: FixedLengthBufferLikeFieldOptions, typeScriptType?: TTypeScriptType): AddFieldDescriptor<TFields, TOmitInitKey, TExtra, TPostDeserialized, TName, FixedLengthBufferLikeFieldDefinition<TType, FixedLengthBufferLikeFieldOptions, TTypeScriptType>>;
|
|
20
|
+
<TName extends PropertyKey, TLengthField extends LengthField<TFields>, TOptions extends VariableLengthBufferLikeFieldOptions<TFields, TLengthField>, TTypeScriptType = TType["TTypeScriptType"]>(name: TName, options: TOptions, typeScriptType?: TTypeScriptType): AddFieldDescriptor<TFields, TOmitInitKey, TExtra, TPostDeserialized, TName, VariableLengthBufferLikeFieldDefinition<TType, TOptions, TTypeScriptType>>;
|
|
21
21
|
}
|
|
22
|
-
export
|
|
23
|
-
export
|
|
24
|
-
export declare class Struct<TFields extends object =
|
|
22
|
+
export type StructPostDeserialized<TFields, TPostDeserialized> = (this: TFields, object: TFields) => TPostDeserialized;
|
|
23
|
+
export type StructDeserializedResult<TFields extends object, TExtra extends object, TPostDeserialized> = TPostDeserialized extends undefined ? Overwrite<TExtra, TFields> : TPostDeserialized;
|
|
24
|
+
export declare class Struct<TFields extends object = Record<never, never>, TOmitInitKey extends PropertyKey = never, TExtra extends object = Record<never, never>, TPostDeserialized = undefined> implements StructLike<StructDeserializedResult<TFields, TExtra, TPostDeserialized>> {
|
|
25
25
|
readonly TFields: TFields;
|
|
26
26
|
readonly TOmitInitKey: TOmitInitKey;
|
|
27
27
|
readonly TExtra: TExtra;
|
|
@@ -44,45 +44,45 @@ export declare class Struct<TFields extends object = {}, TOmitInitKey extends Pr
|
|
|
44
44
|
/**
|
|
45
45
|
* Merges (flats) another `Struct`'s fields and extra fields into this one.
|
|
46
46
|
*/
|
|
47
|
-
fields<TOther extends Struct<any, any, any, any>>(other: TOther): Struct<TFields & TOther[
|
|
47
|
+
fields<TOther extends Struct<any, any, any, any>>(other: TOther): Struct<TFields & TOther["TFields"], TOmitInitKey | TOther["TOmitInitKey"], TExtra & TOther["TExtra"], TPostDeserialized>;
|
|
48
48
|
private number;
|
|
49
49
|
/**
|
|
50
50
|
* Appends an `int8` field to the `Struct`
|
|
51
51
|
*/
|
|
52
|
-
int8<TName extends PropertyKey, TTypeScriptType =
|
|
52
|
+
int8<TName extends PropertyKey, TTypeScriptType = number>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
53
53
|
/**
|
|
54
54
|
* Appends an `uint8` field to the `Struct`
|
|
55
55
|
*/
|
|
56
|
-
uint8<TName extends PropertyKey, TTypeScriptType =
|
|
56
|
+
uint8<TName extends PropertyKey, TTypeScriptType = number>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
57
57
|
/**
|
|
58
58
|
* Appends an `int16` field to the `Struct`
|
|
59
59
|
*/
|
|
60
|
-
int16<TName extends PropertyKey, TTypeScriptType =
|
|
60
|
+
int16<TName extends PropertyKey, TTypeScriptType = number>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
61
61
|
/**
|
|
62
62
|
* Appends an `uint16` field to the `Struct`
|
|
63
63
|
*/
|
|
64
|
-
uint16<TName extends PropertyKey, TTypeScriptType =
|
|
64
|
+
uint16<TName extends PropertyKey, TTypeScriptType = number>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
65
65
|
/**
|
|
66
66
|
* Appends an `int32` field to the `Struct`
|
|
67
67
|
*/
|
|
68
|
-
int32<TName extends PropertyKey, TTypeScriptType =
|
|
68
|
+
int32<TName extends PropertyKey, TTypeScriptType = number>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
69
69
|
/**
|
|
70
70
|
* Appends an `uint32` field to the `Struct`
|
|
71
71
|
*/
|
|
72
|
-
uint32<TName extends PropertyKey, TTypeScriptType =
|
|
72
|
+
uint32<TName extends PropertyKey, TTypeScriptType = number>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
73
73
|
private bigint;
|
|
74
74
|
/**
|
|
75
75
|
* Appends an `int64` field to the `Struct`
|
|
76
76
|
*
|
|
77
77
|
* Requires native `BigInt` support
|
|
78
78
|
*/
|
|
79
|
-
int64<TName extends PropertyKey, TTypeScriptType = BigIntFieldType[
|
|
79
|
+
int64<TName extends PropertyKey, TTypeScriptType = BigIntFieldType["TTypeScriptType"]>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
80
80
|
/**
|
|
81
81
|
* Appends an `uint64` field to the `Struct`
|
|
82
82
|
*
|
|
83
83
|
* Requires native `BigInt` support
|
|
84
84
|
*/
|
|
85
|
-
uint64<TName extends PropertyKey, TTypeScriptType = BigIntFieldType[
|
|
85
|
+
uint64<TName extends PropertyKey, TTypeScriptType = BigIntFieldType["TTypeScriptType"]>(name: TName, typeScriptType?: TTypeScriptType): Struct<Evaluate<TFields & Record<TName, TTypeScriptType>>, TOmitInitKey, TExtra, TPostDeserialized>;
|
|
86
86
|
private arrayBufferLike;
|
|
87
87
|
uint8Array: BoundArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, Uint8ArrayBufferFieldSubType>;
|
|
88
88
|
string: BoundArrayBufferLikeFieldDefinitionCreator<TFields, TOmitInitKey, TExtra, TPostDeserialized, StringBufferFieldSubType>;
|
package/esm/struct.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
|
package/esm/struct.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { STRUCT_VALUE_SYMBOL } from
|
|
2
|
-
import { StructDefaultOptions, StructValue } from './basic/index.js';
|
|
1
|
+
import { STRUCT_VALUE_SYMBOL, StructDefaultOptions, StructValue, } from "./basic/index.js";
|
|
3
2
|
import { SyncPromise } from "./sync-promise.js";
|
|
4
|
-
import { BigIntFieldDefinition, BigIntFieldType, FixedLengthBufferLikeFieldDefinition, NumberFieldDefinition, NumberFieldType, StringBufferFieldSubType, Uint8ArrayBufferFieldSubType, VariableLengthBufferLikeFieldDefinition } from
|
|
3
|
+
import { BigIntFieldDefinition, BigIntFieldType, FixedLengthBufferLikeFieldDefinition, NumberFieldDefinition, NumberFieldType, StringBufferFieldSubType, Uint8ArrayBufferFieldSubType, VariableLengthBufferLikeFieldDefinition, } from "./types/index.js";
|
|
5
4
|
export class Struct {
|
|
6
5
|
TFields;
|
|
7
6
|
TOmitInitKey;
|
|
@@ -13,7 +12,9 @@ export class Struct {
|
|
|
13
12
|
/**
|
|
14
13
|
* Gets the static size (exclude fields that can change size at runtime)
|
|
15
14
|
*/
|
|
16
|
-
get size() {
|
|
15
|
+
get size() {
|
|
16
|
+
return this._size;
|
|
17
|
+
}
|
|
17
18
|
_fields = [];
|
|
18
19
|
_extra = {};
|
|
19
20
|
_postDeserialized;
|
|
@@ -105,7 +106,7 @@ export class Struct {
|
|
|
105
106
|
return this.bigint(name, BigIntFieldType.Uint64, typeScriptType);
|
|
106
107
|
}
|
|
107
108
|
arrayBufferLike = (name, type, options) => {
|
|
108
|
-
if (
|
|
109
|
+
if ("length" in options) {
|
|
109
110
|
return this.field(name, new FixedLengthBufferLikeFieldDefinition(type, options));
|
|
110
111
|
}
|
|
111
112
|
else {
|
|
@@ -142,7 +143,7 @@ export class Struct {
|
|
|
142
143
|
for (const [name, definition] of this._fields) {
|
|
143
144
|
promise = promise
|
|
144
145
|
.then(() => definition.deserialize(this.options, stream, structValue))
|
|
145
|
-
.then(fieldValue => {
|
|
146
|
+
.then((fieldValue) => {
|
|
146
147
|
structValue.set(name, fieldValue);
|
|
147
148
|
});
|
|
148
149
|
}
|
|
@@ -154,7 +155,7 @@ export class Struct {
|
|
|
154
155
|
const override = this._postDeserialized.call(object, object);
|
|
155
156
|
// If it returns a new value, use that as result
|
|
156
157
|
// Otherwise it only inspects/mutates the object in place.
|
|
157
|
-
if (override) {
|
|
158
|
+
if (override !== undefined) {
|
|
158
159
|
return override;
|
|
159
160
|
}
|
|
160
161
|
}
|
|
@@ -188,10 +189,10 @@ export class Struct {
|
|
|
188
189
|
fieldsInfo.push({ fieldValue, size });
|
|
189
190
|
structSize += size;
|
|
190
191
|
}
|
|
191
|
-
let outputType =
|
|
192
|
+
let outputType = "number";
|
|
192
193
|
if (!output) {
|
|
193
194
|
output = new Uint8Array(structSize);
|
|
194
|
-
outputType =
|
|
195
|
+
outputType = "Uint8Array";
|
|
195
196
|
}
|
|
196
197
|
const dataView = new DataView(output.buffer, output.byteOffset, output.byteLength);
|
|
197
198
|
let offset = 0;
|
|
@@ -199,7 +200,7 @@ export class Struct {
|
|
|
199
200
|
fieldValue.serialize(dataView, offset);
|
|
200
201
|
offset += size;
|
|
201
202
|
}
|
|
202
|
-
if (outputType ===
|
|
203
|
+
if (outputType === "number") {
|
|
203
204
|
return structSize;
|
|
204
205
|
}
|
|
205
206
|
else {
|
package/esm/struct.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-promise.d.ts","sourceRoot":"","sources":["../src/sync-promise.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW,CAAC,CAAC;IAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC/B,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"sync-promise.d.ts","sourceRoot":"","sources":["../src/sync-promise.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW,CAAC,CAAC;IAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC/B,WAAW,CAAC,EACN,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GAChD,IAAI,GACJ,SAAS,EACf,UAAU,CAAC,EACL,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,GACnD,IAAI,GACJ,SAAS,GAChB,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;IAEpC,cAAc,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;CACxC;AAED,UAAU,iBAAiB;IACvB,MAAM,CAAC,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAEhD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAEtD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,WAAW,EAAE,iBA8BzB,CAAC"}
|
package/esm/sync-promise.js
CHANGED
|
@@ -3,9 +3,9 @@ export const SyncPromise = {
|
|
|
3
3
|
return new RejectedSyncPromise(reason);
|
|
4
4
|
},
|
|
5
5
|
resolve(value) {
|
|
6
|
-
if (typeof value ===
|
|
6
|
+
if (typeof value === "object" &&
|
|
7
7
|
value !== null &&
|
|
8
|
-
typeof value.then ===
|
|
8
|
+
typeof value.then === "function") {
|
|
9
9
|
if (value instanceof PendingSyncPromise ||
|
|
10
10
|
value instanceof ResolvedSyncPromise ||
|
|
11
11
|
value instanceof RejectedSyncPromise) {
|
|
@@ -24,7 +24,7 @@ export const SyncPromise = {
|
|
|
24
24
|
catch (e) {
|
|
25
25
|
return SyncPromise.reject(e);
|
|
26
26
|
}
|
|
27
|
-
}
|
|
27
|
+
},
|
|
28
28
|
};
|
|
29
29
|
class PendingSyncPromise {
|
|
30
30
|
promise;
|
|
@@ -43,7 +43,7 @@ class ResolvedSyncPromise {
|
|
|
43
43
|
constructor(value) {
|
|
44
44
|
this.value = value;
|
|
45
45
|
}
|
|
46
|
-
then(onfulfilled
|
|
46
|
+
then(onfulfilled) {
|
|
47
47
|
if (!onfulfilled) {
|
|
48
48
|
return this;
|
|
49
49
|
}
|
package/esm/sync-promise.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-promise.js","sourceRoot":"","sources":["../src/sync-promise.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sync-promise.js","sourceRoot":"","sources":["../src/sync-promise.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC1C,MAAM,CAAY,MAAY;QAC1B,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,CAAI,KAA0B;QACjC,IACI,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,KAAK,IAAI;YACd,OAAQ,KAAwB,CAAC,IAAI,KAAK,UAAU,EACtD;YACE,IACI,KAAK,YAAY,kBAAkB;gBACnC,KAAK,YAAY,mBAAmB;gBACpC,KAAK,YAAY,mBAAmB,EACtC;gBACE,OAAO,KAAK,CAAC;aAChB;YAED,OAAO,IAAI,kBAAkB,CAAC,KAAuB,CAAC,CAAC;SAC1D;aAAM;YACH,OAAO,IAAI,mBAAmB,CAAC,KAAU,CAAC,CAAC;SAC9C;IACL,CAAC;IACD,GAAG,CAAI,QAAkC;QACrC,IAAI;YACA,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC1C;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAChC;IACL,CAAC;CACJ,CAAC;AAEF,MAAM,kBAAkB;IACZ,OAAO,CAAiB;IAEhC,YAAmB,OAAuB;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEM,IAAI,CACP,WAGe,EACf,UAGe;QAEf,OAAO,IAAI,kBAAkB,CACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAC7C,CAAC;IACN,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AAED,MAAM,mBAAmB;IACb,KAAK,CAAI;IAEjB,YAAmB,KAAQ;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,IAAI,CACP,WAGe;QAEf,IAAI,CAAC,WAAW,EAAE;YACd,OAAO,IAAW,CAAC;SACtB;QACD,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;CACJ;AAED,MAAM,mBAAmB;IACb,MAAM,CAAM;IAEpB,YAAmB,MAAW;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,IAAI,CACP,WAGe,EACf,UAGe;QAEf,IAAI,CAAC,UAAU,EAAE;YACb,OAAO,IAAW,CAAC;SACtB;QACD,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,cAAc;QACjB,MAAM,IAAI,CAAC,MAAM,CAAC;IACtB,CAAC;CACJ"}
|
package/esm/types/bigint.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { StructFieldDefinition, StructFieldValue,
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { StructFieldDefinition, StructFieldValue, type StructAsyncDeserializeStream, type StructDeserializeStream, type StructOptions, type StructValue } from "../basic/index.js";
|
|
2
|
+
type DataViewBigInt64Getter = (dataView: DataView, byteOffset: number, littleEndian: boolean | undefined) => bigint;
|
|
3
|
+
type DataViewBigInt64Setter = (dataView: DataView, byteOffset: number, value: bigint, littleEndian: boolean | undefined) => void;
|
|
4
4
|
export declare class BigIntFieldType {
|
|
5
5
|
readonly TTypeScriptType: bigint;
|
|
6
6
|
readonly size: number;
|
|
@@ -12,7 +12,7 @@ export declare class BigIntFieldType {
|
|
|
12
12
|
}
|
|
13
13
|
export declare class BigIntFieldDefinition<TType extends BigIntFieldType = BigIntFieldType, TTypeScriptType = TType["TTypeScriptType"]> extends StructFieldDefinition<void, TTypeScriptType> {
|
|
14
14
|
readonly type: TType;
|
|
15
|
-
constructor(type: TType,
|
|
15
|
+
constructor(type: TType, typescriptType?: TTypeScriptType);
|
|
16
16
|
getSize(): number;
|
|
17
17
|
create(options: Readonly<StructOptions>, struct: StructValue, value: TTypeScriptType): BigIntFieldValue<this>;
|
|
18
18
|
deserialize(options: Readonly<StructOptions>, stream: StructDeserializeStream, struct: StructValue): BigIntFieldValue<this>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,WAAW,EACnB,MAAM,mBAAmB,CAAC;AAI3B,KAAK,sBAAsB,GAAG,CAC1B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,OAAO,GAAG,SAAS,KAChC,MAAM,CAAC;AAEZ,KAAK,sBAAsB,GAAG,CAC1B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,OAAO,GAAG,SAAS,KAChC,IAAI,CAAC;AAEV,qBAAa,eAAe;IACxB,SAAgB,eAAe,EAAG,MAAM,CAAC;IAEzC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,SAAgB,MAAM,EAAE,sBAAsB,CAAC;IAE/C,SAAgB,MAAM,EAAE,sBAAsB,CAAC;gBAG3C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,sBAAsB;IAOlC,gBAAuB,KAAK,kBAI1B;IAEF,gBAAuB,MAAM,kBAI3B;CACL;AAED,qBAAa,qBAAqB,CAC9B,KAAK,SAAS,eAAe,GAAG,eAAe,EAC/C,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAC5C,SAAQ,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC;IAClD,SAAgB,IAAI,EAAE,KAAK,CAAC;gBAET,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,eAAe;IAMzD,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;CAoBrC;AAED,qBAAa,gBAAgB,CACzB,WAAW,SAAS,qBAAqB,CAAC,eAAe,EAAE,GAAG,CAAC,CACjE,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IAC5B,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAQ7D"}
|
package/esm/types/bigint.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getBigInt64, getBigUint64, setBigInt64, setBigUint64 } from
|
|
2
|
-
import { StructFieldDefinition, StructFieldValue } from "../basic/index.js";
|
|
1
|
+
import { getBigInt64, getBigUint64, setBigInt64, setBigUint64, } from "@yume-chan/dataview-bigint-polyfill/esm/fallback.js";
|
|
2
|
+
import { StructFieldDefinition, StructFieldValue, } from "../basic/index.js";
|
|
3
3
|
import { SyncPromise } from "../sync-promise.js";
|
|
4
4
|
export class BigIntFieldType {
|
|
5
5
|
TTypeScriptType;
|
|
@@ -16,7 +16,8 @@ export class BigIntFieldType {
|
|
|
16
16
|
}
|
|
17
17
|
export class BigIntFieldDefinition extends StructFieldDefinition {
|
|
18
18
|
type;
|
|
19
|
-
constructor(type,
|
|
19
|
+
constructor(type, typescriptType) {
|
|
20
|
+
void typescriptType;
|
|
20
21
|
super();
|
|
21
22
|
this.type = type;
|
|
22
23
|
}
|
|
@@ -27,11 +28,10 @@ export class BigIntFieldDefinition extends StructFieldDefinition {
|
|
|
27
28
|
return new BigIntFieldValue(this, options, struct, value);
|
|
28
29
|
}
|
|
29
30
|
deserialize(options, stream, struct) {
|
|
30
|
-
return SyncPromise
|
|
31
|
-
.try(() => {
|
|
31
|
+
return SyncPromise.try(() => {
|
|
32
32
|
return stream.read(this.getSize());
|
|
33
33
|
})
|
|
34
|
-
.then(array => {
|
|
34
|
+
.then((array) => {
|
|
35
35
|
const view = new DataView(array.buffer, array.byteOffset, array.byteLength);
|
|
36
36
|
const value = this.type.getter(view, 0, options.littleEndian);
|
|
37
37
|
return this.create(options, struct, value);
|
package/esm/types/bigint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,GACf,MAAM,qDAAqD,CAAC;AAE7D,OAAO,EACH,qBAAqB,EACrB,gBAAgB,GAKnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAgBjD,MAAM,OAAO,eAAe;IACR,eAAe,CAAU;IAEzB,IAAI,CAAS;IAEb,MAAM,CAAyB;IAE/B,MAAM,CAAyB;IAE/C,YACI,IAAY,EACZ,MAA8B,EAC9B,MAA8B;QAE9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,MAAM,CAAU,KAAK,GAAG,IAAI,eAAe,CAC9C,CAAC,EACD,WAAW,EACX,WAAW,CACd,CAAC;IAEK,MAAM,CAAU,MAAM,GAAG,IAAI,eAAe,CAC/C,CAAC,EACD,YAAY,EACZ,YAAY,CACf,CAAC;;AAGN,MAAM,OAAO,qBAGX,SAAQ,qBAA4C;IAClC,IAAI,CAAQ;IAE5B,YAAmB,IAAW,EAAE,cAAgC;QAC5D,KAAK,cAAc,CAAC;QACpB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B,CAAC;IAEM,MAAM,CACT,OAAgC,EAChC,MAAmB,EACnB,KAAsB;QAEtB,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAYe,WAAW,CACvB,OAAgC,EAChC,MAA8D,EAC9D,MAAmB;QAEnB,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;YACxB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC;aACG,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACZ,MAAM,IAAI,GAAG,IAAI,QAAQ,CACrB,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,CACnB,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAY,CAAC,CAAC;QACtD,CAAC,CAAC;aACD,cAAc,EAAE,CAAC;IAC1B,CAAC;CACJ;AAED,MAAM,OAAO,gBAEX,SAAQ,gBAA6B;IAC5B,SAAS,CAAC,QAAkB,EAAE,MAAc;QAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CACvB,QAAQ,EACR,MAAM,EACN,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,OAAO,CAAC,YAAY,CAC5B,CAAC;IACN,CAAC;CACJ"}
|