@yume-chan/struct 0.0.9 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +23 -0
- package/CHANGELOG.md +16 -0
- package/LICENSE +21 -21
- package/README.md +720 -709
- package/dts/basic/context.d.ts +10 -18
- package/dts/basic/context.d.ts.map +1 -1
- package/dts/basic/definition.d.ts +4 -4
- package/dts/basic/definition.d.ts.map +1 -1
- package/dts/basic/field-value.d.ts +3 -5
- package/dts/basic/field-value.d.ts.map +1 -1
- package/dts/basic/struct-value.d.ts.map +1 -1
- package/dts/struct.d.ts +16 -17
- package/dts/struct.d.ts.map +1 -1
- package/dts/syncbird.d.ts +20 -0
- package/dts/syncbird.d.ts.map +1 -0
- package/dts/types/array-buffer.d.ts +13 -12
- package/dts/types/array-buffer.d.ts.map +1 -1
- package/dts/types/number.d.ts +4 -3
- package/dts/types/number.d.ts.map +1 -1
- package/dts/types/variable-length-array-buffer.d.ts +4 -4
- package/dts/types/variable-length-array-buffer.d.ts.map +1 -1
- package/dts/utils.d.ts +3 -2
- package/dts/utils.d.ts.map +1 -1
- package/esm/basic/context.js.map +1 -1
- package/esm/basic/definition.js.map +1 -1
- package/esm/basic/field-value.js +1 -2
- package/esm/basic/field-value.js.map +1 -1
- package/esm/basic/struct-value.js +0 -6
- package/esm/basic/struct-value.js.map +1 -1
- package/esm/struct.js +27 -17
- package/esm/struct.js.map +1 -1
- package/esm/syncbird.js +25 -0
- package/esm/syncbird.js.map +1 -0
- package/esm/types/array-buffer.js +21 -20
- package/esm/types/array-buffer.js.map +1 -1
- package/esm/types/number.js +9 -8
- package/esm/types/number.js.map +1 -1
- package/esm/types/variable-length-array-buffer.js +8 -8
- package/esm/types/variable-length-array-buffer.js.map +1 -1
- package/esm/utils.js +10 -0
- package/esm/utils.js.map +1 -1
- package/package.json +47 -50
- package/src/basic/context.ts +32 -42
- package/src/basic/definition.ts +72 -69
- package/src/basic/field-value.ts +67 -73
- package/src/basic/index.ts +4 -4
- package/src/basic/struct-value.ts +39 -45
- package/src/index.ts +5 -5
- package/src/struct.ts +595 -575
- package/src/syncbird.ts +53 -0
- package/src/types/array-buffer.ts +194 -184
- package/src/types/fixed-length-array-buffer.ts +17 -17
- package/src/types/index.ts +4 -4
- package/src/types/number.ts +114 -100
- package/src/types/variable-length-array-buffer.ts +142 -145
- package/src/utils.ts +62 -51
- package/cjs/basic/context.js +0 -7
- package/cjs/basic/context.js.map +0 -1
- package/cjs/basic/definition.js +0 -25
- package/cjs/basic/definition.js.map +0 -1
- package/cjs/basic/field-value.js +0 -40
- package/cjs/basic/field-value.js.map +0 -1
- package/cjs/basic/index.js +0 -8
- package/cjs/basic/index.js.map +0 -1
- package/cjs/basic/struct-value.js +0 -46
- package/cjs/basic/struct-value.js.map +0 -1
- package/cjs/index.js +0 -11
- package/cjs/index.js.map +0 -1
- package/cjs/struct.js +0 -177
- package/cjs/struct.js.map +0 -1
- package/cjs/types/array-buffer.js +0 -118
- package/cjs/types/array-buffer.js.map +0 -1
- package/cjs/types/fixed-length-array-buffer.js +0 -12
- package/cjs/types/fixed-length-array-buffer.js.map +0 -1
- package/cjs/types/index.js +0 -8
- package/cjs/types/index.js.map +0 -1
- package/cjs/types/number.js +0 -52
- package/cjs/types/number.js.map +0 -1
- package/cjs/types/variable-length-array-buffer.js +0 -77
- package/cjs/types/variable-length-array-buffer.js.map +0 -1
- package/cjs/utils.js +0 -11
- package/cjs/utils.js.map +0 -1
- package/tsconfig.cjs.json +0 -11
- package/tsconfig.esm.json +0 -15
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":";;;AAKA;;;;;;;;;;;;;;GAcG;AACH,MAAsB,qBAAqB;IAmBvC,YAAmB,OAAiB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CA2BJ;AAhDD,sDAgDC"}
|
package/cjs/basic/field-value.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StructFieldValue = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Field runtime value manages one field of one `Struct` instance.
|
|
6
|
-
*
|
|
7
|
-
* If one `StructFieldDefinition` needs to change other field's semantics
|
|
8
|
-
* It can override other fields' `StructFieldValue` in its own `StructFieldValue`'s constructor
|
|
9
|
-
*/
|
|
10
|
-
class StructFieldValue {
|
|
11
|
-
constructor(definition, options, context, struct, value) {
|
|
12
|
-
this.definition = definition;
|
|
13
|
-
this.options = options;
|
|
14
|
-
this.context = context;
|
|
15
|
-
this.struct = struct;
|
|
16
|
-
this.value = value;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Gets size of this field. By default, it returns its `definition`'s size.
|
|
20
|
-
*
|
|
21
|
-
* When overridden in derived classes, can have custom logic to calculate the actual size.
|
|
22
|
-
*/
|
|
23
|
-
getSize() {
|
|
24
|
-
return this.definition.getSize();
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* When implemented in derived classes, returns the current value of this field
|
|
28
|
-
*/
|
|
29
|
-
get() {
|
|
30
|
-
return this.value;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* When implemented in derived classes, update the current value of this field
|
|
34
|
-
*/
|
|
35
|
-
set(value) {
|
|
36
|
-
this.value = value;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.StructFieldValue = StructFieldValue;
|
|
40
|
-
//# sourceMappingURL=field-value.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-value.js","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":";;;AAIA;;;;;GAKG;AACH,MAAsB,gBAAgB;IAiBlC,YACI,UAAuB,EACvB,OAAgC,EAChC,OAAmC,EACnC,MAAmB,EACnB,KAA4B;QAE5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,OAAO;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,GAAG;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,KAA4B;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CAUJ;AA9DD,4CA8DC"}
|
package/cjs/basic/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./context"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./definition"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./field-value"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./struct-value"), exports);
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
package/cjs/basic/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/basic/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,uDAA6B;AAC7B,wDAA8B;AAC9B,yDAA+B"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StructValue = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Manages the initialization process of a struct value
|
|
6
|
-
*/
|
|
7
|
-
class StructValue {
|
|
8
|
-
constructor() {
|
|
9
|
-
/** @internal */ this.fieldValues = {};
|
|
10
|
-
/**
|
|
11
|
-
* Gets the result struct value object
|
|
12
|
-
*/
|
|
13
|
-
this.value = {};
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Sets a `StructFieldValue` for `key`
|
|
17
|
-
*
|
|
18
|
-
* @param key The field name
|
|
19
|
-
* @param value The associated `StructFieldValue`
|
|
20
|
-
*/
|
|
21
|
-
set(key, value) {
|
|
22
|
-
// TODO: TypeScript 4.2 will allow this behavior
|
|
23
|
-
// https://github.com/microsoft/TypeScript/pull/26797
|
|
24
|
-
// @ts-expect-error Type 'symbol' cannot be used as an index type. ts(2538)
|
|
25
|
-
this.fieldValues[key] = value;
|
|
26
|
-
Object.defineProperty(this.value, key, {
|
|
27
|
-
configurable: true,
|
|
28
|
-
enumerable: true,
|
|
29
|
-
get() { return value.get(); },
|
|
30
|
-
set(v) { value.set(v); },
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Gets a previously `StructFieldValue` for `key`
|
|
35
|
-
*
|
|
36
|
-
* @param key The field name
|
|
37
|
-
*/
|
|
38
|
-
get(key) {
|
|
39
|
-
// TODO: TypeScript 4.2 will allow this behavior
|
|
40
|
-
// https://github.com/microsoft/TypeScript/pull/26797
|
|
41
|
-
// @ts-expect-error Type 'symbol' cannot be used as an index type. ts(2538)
|
|
42
|
-
return this.fieldValues[key];
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
exports.StructValue = StructValue;
|
|
46
|
-
//# sourceMappingURL=struct-value.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"struct-value.js","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,WAAW;IAAxB;QACI,gBAAgB,CAAU,gBAAW,GAA0C,EAAE,CAAC;QAElF;;WAEG;QACa,UAAK,GAAiC,EAAE,CAAC;IAiC7D,CAAC;IA/BG;;;;;OAKG;IACI,GAAG,CAAC,GAAgB,EAAE,KAAuB;QAChD,gDAAgD;QAChD,qDAAqD;QACrD,2EAA2E;QAC3E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAE9B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;YACnC,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,IAAI;YAChB,GAAG,KAAK,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7B,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,GAAgB;QACvB,gDAAgD;QAChD,qDAAqD;QACrD,2EAA2E;QAC3E,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACJ;AAvCD,kCAuCC"}
|
package/cjs/index.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
tslib_1.__exportStar(require("./basic"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./struct"), exports);
|
|
7
|
-
var struct_1 = require("./struct");
|
|
8
|
-
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return struct_1.Struct; } });
|
|
9
|
-
tslib_1.__exportStar(require("./types"), exports);
|
|
10
|
-
tslib_1.__exportStar(require("./utils"), exports);
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,kDAAwB;AACxB,mDAAyB;AACzB,mCAA6C;AAApC,iGAAA,MAAM,OAAW;AAC1B,kDAAwB;AACxB,kDAAwB"}
|
package/cjs/struct.js
DELETED
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Struct = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const basic_1 = require("./basic");
|
|
6
|
-
const types_1 = require("./types");
|
|
7
|
-
class Struct {
|
|
8
|
-
constructor(options) {
|
|
9
|
-
this._size = 0;
|
|
10
|
-
this._fields = [];
|
|
11
|
-
this._extra = {};
|
|
12
|
-
this.arrayBufferLike = (name, type, options) => {
|
|
13
|
-
if ('length' in options) {
|
|
14
|
-
return this.field(name, new types_1.FixedLengthArrayBufferLikeFieldDefinition(type, options));
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
return this.field(name, new types_1.VariableLengthArrayBufferLikeFieldDefinition(type, options));
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
this.arrayBuffer = (name, options) => {
|
|
21
|
-
return this.arrayBufferLike(name, types_1.ArrayBufferFieldType.instance, options);
|
|
22
|
-
};
|
|
23
|
-
this.uint8ClampedArray = (name, options) => {
|
|
24
|
-
return this.arrayBufferLike(name, types_1.Uint8ClampedArrayFieldType.instance, options);
|
|
25
|
-
};
|
|
26
|
-
this.string = (name, options) => {
|
|
27
|
-
return this.arrayBufferLike(name, types_1.StringFieldType.instance, options);
|
|
28
|
-
};
|
|
29
|
-
this.options = Object.assign(Object.assign({}, basic_1.StructDefaultOptions), options);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Gets the static size (exclude fields that can change size at runtime)
|
|
33
|
-
*/
|
|
34
|
-
get size() { return this._size; }
|
|
35
|
-
/**
|
|
36
|
-
* Appends a `StructFieldDefinition` to the `Struct
|
|
37
|
-
*/
|
|
38
|
-
field(name, definition) {
|
|
39
|
-
for (const field of this._fields) {
|
|
40
|
-
if (field[0] === name) {
|
|
41
|
-
throw new Error(`This struct already have a field with name '${name}'`);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
this._fields.push([name, definition]);
|
|
45
|
-
const size = definition.getSize();
|
|
46
|
-
this._size += size;
|
|
47
|
-
// Force cast `this` to another type
|
|
48
|
-
return this;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Merges (flats) another `Struct`'s fields and extra fields into this one.
|
|
52
|
-
*/
|
|
53
|
-
fields(other) {
|
|
54
|
-
for (const field of other._fields) {
|
|
55
|
-
this._fields.push(field);
|
|
56
|
-
}
|
|
57
|
-
this._size += other._size;
|
|
58
|
-
Object.assign(this._extra, other._extra);
|
|
59
|
-
return this;
|
|
60
|
-
}
|
|
61
|
-
number(name, type, _typescriptType) {
|
|
62
|
-
return this.field(name, new types_1.NumberFieldDefinition(type, _typescriptType));
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Appends an `int8` field to the `Struct`
|
|
66
|
-
*/
|
|
67
|
-
int8(name, _typescriptType) {
|
|
68
|
-
return this.number(name, types_1.NumberFieldType.Int8, _typescriptType);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Appends an `uint8` field to the `Struct`
|
|
72
|
-
*/
|
|
73
|
-
uint8(name, _typescriptType) {
|
|
74
|
-
return this.number(name, types_1.NumberFieldType.Uint8, _typescriptType);
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Appends an `int16` field to the `Struct`
|
|
78
|
-
*/
|
|
79
|
-
int16(name, _typescriptType) {
|
|
80
|
-
return this.number(name, types_1.NumberFieldType.Int16, _typescriptType);
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Appends an `uint16` field to the `Struct`
|
|
84
|
-
*/
|
|
85
|
-
uint16(name, _typescriptType) {
|
|
86
|
-
return this.number(name, types_1.NumberFieldType.Uint16, _typescriptType);
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Appends an `int32` field to the `Struct`
|
|
90
|
-
*/
|
|
91
|
-
int32(name, _typescriptType) {
|
|
92
|
-
return this.number(name, types_1.NumberFieldType.Int32, _typescriptType);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Appends an `uint32` field to the `Struct`
|
|
96
|
-
*/
|
|
97
|
-
uint32(name, typescriptType) {
|
|
98
|
-
return this.number(name, types_1.NumberFieldType.Uint32, typescriptType);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Appends an `int64` field to the `Struct`
|
|
102
|
-
*
|
|
103
|
-
* Requires native `BigInt` support
|
|
104
|
-
*/
|
|
105
|
-
int64(name, _typescriptType) {
|
|
106
|
-
return this.number(name, types_1.NumberFieldType.Int64, _typescriptType);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Appends an `uint64` field to the `Struct`
|
|
110
|
-
*
|
|
111
|
-
* Requires native `BigInt` support
|
|
112
|
-
*/
|
|
113
|
-
uint64(name, _typescriptType) {
|
|
114
|
-
return this.number(name, types_1.NumberFieldType.Uint64, _typescriptType);
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Adds some extra fields into every Struct value.
|
|
118
|
-
*
|
|
119
|
-
* Extra fields will not affect serialize or deserialize process.
|
|
120
|
-
*
|
|
121
|
-
* Multiple calls to `extra` will merge all values together.
|
|
122
|
-
*
|
|
123
|
-
* @param value
|
|
124
|
-
* An object containing anything you want to add to the result object. Accessors and methods are also allowed.
|
|
125
|
-
*/
|
|
126
|
-
extra(value) {
|
|
127
|
-
Object.assign(this._extra, Object.getOwnPropertyDescriptors(value));
|
|
128
|
-
return this;
|
|
129
|
-
}
|
|
130
|
-
postDeserialize(callback) {
|
|
131
|
-
this._postDeserialized = callback;
|
|
132
|
-
return this;
|
|
133
|
-
}
|
|
134
|
-
deserialize(context) {
|
|
135
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
136
|
-
const value = new basic_1.StructValue();
|
|
137
|
-
Object.defineProperties(value.value, this._extra);
|
|
138
|
-
for (const [name, definition] of this._fields) {
|
|
139
|
-
const fieldValue = yield definition.deserialize(this.options, context, value);
|
|
140
|
-
value.set(name, fieldValue);
|
|
141
|
-
}
|
|
142
|
-
if (this._postDeserialized) {
|
|
143
|
-
const object = value.value;
|
|
144
|
-
const result = this._postDeserialized.call(object, object);
|
|
145
|
-
if (result) {
|
|
146
|
-
return result;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return value.value;
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
serialize(init, context) {
|
|
153
|
-
const value = new basic_1.StructValue();
|
|
154
|
-
for (const [name, definition] of this._fields) {
|
|
155
|
-
const fieldValue = definition.create(this.options, context, value, init[name]);
|
|
156
|
-
value.set(name, fieldValue);
|
|
157
|
-
}
|
|
158
|
-
let structSize = 0;
|
|
159
|
-
const fieldsInfo = [];
|
|
160
|
-
for (const [name] of this._fields) {
|
|
161
|
-
const fieldValue = value.get(name);
|
|
162
|
-
const size = fieldValue.getSize();
|
|
163
|
-
fieldsInfo.push({ fieldValue, size });
|
|
164
|
-
structSize += size;
|
|
165
|
-
}
|
|
166
|
-
const buffer = new ArrayBuffer(structSize);
|
|
167
|
-
const dataView = new DataView(buffer);
|
|
168
|
-
let offset = 0;
|
|
169
|
-
for (const { fieldValue, size } of fieldsInfo) {
|
|
170
|
-
fieldValue.serialize(dataView, offset, context);
|
|
171
|
-
offset += size;
|
|
172
|
-
}
|
|
173
|
-
return buffer;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
exports.Struct = Struct;
|
|
177
|
-
//# sourceMappingURL=struct.js.map
|
package/cjs/struct.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ArrayBufferLikeFieldValue = exports.ArrayBufferLikeFieldDefinition = exports.StringFieldType = exports.Uint8ClampedArrayFieldType = exports.ArrayBufferFieldType = exports.ArrayBufferLikeFieldType = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const basic_1 = require("../basic");
|
|
6
|
-
/**
|
|
7
|
-
* Base class for all types that
|
|
8
|
-
* can be converted from an ArrayBuffer when deserialized,
|
|
9
|
-
* and need to be converted to an ArrayBuffer when serializing
|
|
10
|
-
*
|
|
11
|
-
* @template TValue The actual TypeScript type of this type
|
|
12
|
-
* @template TTypeScriptType Optional another type (should be compatible with `TType`)
|
|
13
|
-
* specified by user when creating field definitions.
|
|
14
|
-
*/
|
|
15
|
-
class ArrayBufferLikeFieldType {
|
|
16
|
-
}
|
|
17
|
-
exports.ArrayBufferLikeFieldType = ArrayBufferLikeFieldType;
|
|
18
|
-
/** An ArrayBufferLike type that's actually an `ArrayBuffer` */
|
|
19
|
-
class ArrayBufferFieldType extends ArrayBufferLikeFieldType {
|
|
20
|
-
constructor() {
|
|
21
|
-
super();
|
|
22
|
-
}
|
|
23
|
-
toArrayBuffer(value) {
|
|
24
|
-
return value;
|
|
25
|
-
}
|
|
26
|
-
fromArrayBuffer(arrayBuffer) {
|
|
27
|
-
return arrayBuffer;
|
|
28
|
-
}
|
|
29
|
-
getSize(value) {
|
|
30
|
-
return value.byteLength;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.ArrayBufferFieldType = ArrayBufferFieldType;
|
|
34
|
-
ArrayBufferFieldType.instance = new ArrayBufferFieldType();
|
|
35
|
-
/** Am ArrayBufferLike type that converts between `ArrayBuffer` and `Uint8ClampedArray` */
|
|
36
|
-
class Uint8ClampedArrayFieldType extends ArrayBufferLikeFieldType {
|
|
37
|
-
constructor() {
|
|
38
|
-
super();
|
|
39
|
-
}
|
|
40
|
-
toArrayBuffer(value) {
|
|
41
|
-
return value.buffer;
|
|
42
|
-
}
|
|
43
|
-
fromArrayBuffer(arrayBuffer) {
|
|
44
|
-
return new Uint8ClampedArray(arrayBuffer);
|
|
45
|
-
}
|
|
46
|
-
getSize(value) {
|
|
47
|
-
return value.byteLength;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.Uint8ClampedArrayFieldType = Uint8ClampedArrayFieldType;
|
|
51
|
-
Uint8ClampedArrayFieldType.instance = new Uint8ClampedArrayFieldType();
|
|
52
|
-
/** Am ArrayBufferLike type that converts between `ArrayBuffer` and `string` */
|
|
53
|
-
class StringFieldType extends ArrayBufferLikeFieldType {
|
|
54
|
-
toArrayBuffer(value, context) {
|
|
55
|
-
return context.encodeUtf8(value);
|
|
56
|
-
}
|
|
57
|
-
fromArrayBuffer(arrayBuffer, context) {
|
|
58
|
-
return context.decodeUtf8(arrayBuffer);
|
|
59
|
-
}
|
|
60
|
-
getSize() {
|
|
61
|
-
// Return `-1`, so `ArrayBufferLikeFieldDefinition` will
|
|
62
|
-
// convert this `value` into an `ArrayBuffer` (and cache the result),
|
|
63
|
-
// Then get the size from that `ArrayBuffer`
|
|
64
|
-
return -1;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
exports.StringFieldType = StringFieldType;
|
|
68
|
-
StringFieldType.instance = new StringFieldType();
|
|
69
|
-
const EmptyArrayBuffer = new ArrayBuffer(0);
|
|
70
|
-
class ArrayBufferLikeFieldDefinition extends basic_1.StructFieldDefinition {
|
|
71
|
-
constructor(type, options) {
|
|
72
|
-
super(options);
|
|
73
|
-
this.type = type;
|
|
74
|
-
}
|
|
75
|
-
getDeserializeSize(struct) {
|
|
76
|
-
return this.getSize();
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* When implemented in derived classes, creates a `StructFieldValue` for the current field definition.
|
|
80
|
-
*/
|
|
81
|
-
create(options, context, struct, value, arrayBuffer) {
|
|
82
|
-
return new ArrayBufferLikeFieldValue(this, options, context, struct, value, arrayBuffer);
|
|
83
|
-
}
|
|
84
|
-
deserialize(options, context, struct) {
|
|
85
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
86
|
-
const size = this.getDeserializeSize(struct);
|
|
87
|
-
let arrayBuffer;
|
|
88
|
-
if (size === 0) {
|
|
89
|
-
arrayBuffer = EmptyArrayBuffer;
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
arrayBuffer = yield context.read(size);
|
|
93
|
-
}
|
|
94
|
-
const value = this.type.fromArrayBuffer(arrayBuffer, context);
|
|
95
|
-
return this.create(options, context, struct, value, arrayBuffer);
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
exports.ArrayBufferLikeFieldDefinition = ArrayBufferLikeFieldDefinition;
|
|
100
|
-
class ArrayBufferLikeFieldValue extends basic_1.StructFieldValue {
|
|
101
|
-
constructor(definition, options, context, struct, value, arrayBuffer) {
|
|
102
|
-
super(definition, options, context, struct, value);
|
|
103
|
-
this.arrayBuffer = arrayBuffer;
|
|
104
|
-
}
|
|
105
|
-
set(value) {
|
|
106
|
-
super.set(value);
|
|
107
|
-
this.arrayBuffer = undefined;
|
|
108
|
-
}
|
|
109
|
-
serialize(dataView, offset, context) {
|
|
110
|
-
if (!this.arrayBuffer) {
|
|
111
|
-
this.arrayBuffer = this.definition.type.toArrayBuffer(this.value, context);
|
|
112
|
-
}
|
|
113
|
-
new Uint8Array(dataView.buffer)
|
|
114
|
-
.set(new Uint8Array(this.arrayBuffer), offset);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
exports.ArrayBufferLikeFieldValue = ArrayBufferLikeFieldValue;
|
|
118
|
-
//# sourceMappingURL=array-buffer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"array-buffer.js","sourceRoot":"","sources":["../../src/types/array-buffer.ts"],"names":[],"mappings":";;;;AAAA,oCAAyJ;AAEzJ;;;;;;;;GAQG;AACH,MAAsB,wBAAwB;CAsB7C;AAtBD,4DAsBC;AAED,+DAA+D;AAC/D,MAAa,oBAAqB,SAAQ,wBAAqC;IAG3E;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAEM,aAAa,CAAC,KAAkB;QACnC,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,eAAe,CAAC,WAAwB;QAC3C,OAAO,WAAW,CAAC;IACvB,CAAC;IAEM,OAAO,CAAC,KAAkB;QAC7B,OAAO,KAAK,CAAC,UAAU,CAAC;IAC5B,CAAC;;AAjBL,oDAkBC;AAjB0B,6BAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAmBjE,0FAA0F;AAC1F,MAAa,0BACT,SAAQ,wBAA8D;IAGtE;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAEM,aAAa,CAAC,KAAwB;QACzC,OAAO,KAAK,CAAC,MAAM,CAAC;IACxB,CAAC;IAEM,eAAe,CAAC,WAAwB;QAC3C,OAAO,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAEM,OAAO,CAAC,KAAwB;QACnC,OAAO,KAAK,CAAC,UAAU,CAAC;IAC5B,CAAC;;AAlBL,gEAmBC;AAjB0B,mCAAQ,GAAG,IAAI,0BAA0B,EAAE,CAAC;AAmBvE,+EAA+E;AAC/E,MAAa,eACT,SAAQ,wBAAiD;IAGlD,aAAa,CAAC,KAAa,EAAE,OAAmC;QACnE,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAEM,eAAe,CAAC,WAAwB,EAAE,OAAqC;QAClF,OAAO,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAEM,OAAO;QACV,wDAAwD;QACxD,qEAAqE;QACrE,4CAA4C;QAC5C,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;;AAjBL,0CAkBC;AAhB0B,wBAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;AAkB5D,MAAM,gBAAgB,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAE5C,MAAsB,8BAIhB,SAAQ,6BAIT;IAGD,YAAmB,IAAW,EAAE,OAAiB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAES,kBAAkB,CAAC,MAAmB;QAC5C,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,MAAM,CACT,OAAgC,EAChC,OAAmC,EACnC,MAAmB,EACnB,KAA+B,EAC/B,WAAyB;QAEzB,OAAO,IAAI,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7F,CAAC;IAEY,WAAW,CACpB,OAAgC,EAChC,OAAqC,EACrC,MAAmB;;YAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAE7C,IAAI,WAAwB,CAAC;YAC7B,IAAI,IAAI,KAAK,CAAC,EAAE;gBACZ,WAAW,GAAG,gBAAgB,CAAC;aAClC;iBAAM;gBACH,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1C;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACrE,CAAC;KAAA;CACJ;AAlDD,wEAkDC;AAED,MAAa,yBAEP,SAAQ,wBAA6B;IAGvC,YACI,UAAuB,EACvB,OAAgC,EAChC,OAAmC,EACnC,MAAmB,EACnB,KAA4B,EAC5B,WAAyB;QAEzB,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAEM,GAAG,CAAC,KAA4B;QACnC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACjC,CAAC;IAEM,SAAS,CAAC,QAAkB,EAAE,MAAc,EAAE,OAAmC;QACpF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC9E;QAED,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;aAC1B,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;CACJ;AA9BD,8DA8BC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FixedLengthArrayBufferLikeFieldDefinition = void 0;
|
|
4
|
-
const array_buffer_1 = require("./array-buffer");
|
|
5
|
-
class FixedLengthArrayBufferLikeFieldDefinition extends array_buffer_1.ArrayBufferLikeFieldDefinition {
|
|
6
|
-
getSize() {
|
|
7
|
-
return this.options.length;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.FixedLengthArrayBufferLikeFieldDefinition = FixedLengthArrayBufferLikeFieldDefinition;
|
|
11
|
-
;
|
|
12
|
-
//# sourceMappingURL=fixed-length-array-buffer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fixed-length-array-buffer.js","sourceRoot":"","sources":["../../src/types/fixed-length-array-buffer.ts"],"names":[],"mappings":";;;AAAA,iDAA0F;AAM1F,MAAa,yCAGP,SAAQ,6CAGT;IACM,OAAO;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;CACJ;AAVD,8FAUC;AAAA,CAAC"}
|
package/cjs/types/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./array-buffer"), exports);
|
|
5
|
-
tslib_1.__exportStar(require("./fixed-length-array-buffer"), exports);
|
|
6
|
-
tslib_1.__exportStar(require("./number"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./variable-length-array-buffer"), exports);
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
package/cjs/types/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,sEAA4C;AAC5C,mDAAyB;AACzB,yEAA+C"}
|
package/cjs/types/number.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NumberFieldValue = exports.NumberFieldDefinition = exports.NumberFieldType = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const basic_1 = require("../basic");
|
|
6
|
-
class NumberFieldType {
|
|
7
|
-
constructor(size, dataViewGetter, dataViewSetter) {
|
|
8
|
-
this.size = size;
|
|
9
|
-
this.dataViewGetter = dataViewGetter;
|
|
10
|
-
this.dataViewSetter = dataViewSetter;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
exports.NumberFieldType = NumberFieldType;
|
|
14
|
-
NumberFieldType.Int8 = new NumberFieldType(1, 'getInt8', 'setInt8');
|
|
15
|
-
NumberFieldType.Uint8 = new NumberFieldType(1, 'getUint8', 'setUint8');
|
|
16
|
-
NumberFieldType.Int16 = new NumberFieldType(2, 'getInt16', 'setInt16');
|
|
17
|
-
NumberFieldType.Uint16 = new NumberFieldType(2, 'getUint16', 'setUint16');
|
|
18
|
-
NumberFieldType.Int32 = new NumberFieldType(4, 'getInt32', 'setInt32');
|
|
19
|
-
NumberFieldType.Uint32 = new NumberFieldType(4, 'getUint32', 'setUint32');
|
|
20
|
-
NumberFieldType.Int64 = new NumberFieldType(8, 'getBigInt64', 'setBigInt64');
|
|
21
|
-
NumberFieldType.Uint64 = new NumberFieldType(8, 'getBigUint64', 'setBigUint64');
|
|
22
|
-
class NumberFieldDefinition extends basic_1.StructFieldDefinition {
|
|
23
|
-
constructor(type, _typescriptType) {
|
|
24
|
-
super();
|
|
25
|
-
this.type = type;
|
|
26
|
-
}
|
|
27
|
-
getSize() {
|
|
28
|
-
return this.type.size;
|
|
29
|
-
}
|
|
30
|
-
create(options, context, struct, value) {
|
|
31
|
-
return new NumberFieldValue(this, options, context, struct, value);
|
|
32
|
-
}
|
|
33
|
-
deserialize(options, context, struct) {
|
|
34
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
const buffer = yield context.read(this.getSize());
|
|
36
|
-
const view = new DataView(buffer);
|
|
37
|
-
const value = view[this.type.dataViewGetter](0, options.littleEndian);
|
|
38
|
-
return this.create(options, context, struct, value);
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
exports.NumberFieldDefinition = NumberFieldDefinition;
|
|
43
|
-
class NumberFieldValue extends basic_1.StructFieldValue {
|
|
44
|
-
serialize(dataView, offset) {
|
|
45
|
-
// `setBigInt64` requires a `bigint` while others require `number`
|
|
46
|
-
// So `dataView[DataViewSetters]` requires `bigint & number`
|
|
47
|
-
// and that is, `never`
|
|
48
|
-
dataView[this.definition.type.dataViewSetter](offset, this.value, this.options.littleEndian);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
exports.NumberFieldValue = NumberFieldValue;
|
|
52
|
-
//# sourceMappingURL=number.js.map
|
package/cjs/types/number.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"number.js","sourceRoot":"","sources":["../../src/types/number.ts"],"names":[],"mappings":";;;;AAAA,oCAAyJ;AAQzJ,MAAa,eAAe;IASxB,YACI,IAAY,EACZ,cAA+B,EAC/B,cAA+B;QAE/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;;AAjBL,0CAkCC;AAf0B,oBAAI,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAE5D,qBAAK,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAE/D,qBAAK,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAE/D,sBAAM,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAElE,qBAAK,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAE/D,sBAAM,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAElE,qBAAK,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AAErE,sBAAM,GAAG,IAAI,eAAe,CAAS,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;AAGnG,MAAa,qBAGP,SAAQ,6BAGT;IAGD,YAAmB,IAAW,EAAE,eAAiC;QAC7D,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,OAAmC,EACnC,MAAmB,EACnB,KAAsB;QAEtB,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IAEY,WAAW,CACpB,OAAgC,EAChC,OAAqC,EACrC,MAAmB;;YAEnB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CACxC,CAAC,EACD,OAAO,CAAC,YAAY,CAChB,CAAC;YACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;KAAA;CACJ;AAxCD,sDAwCC;AAED,MAAa,gBAEP,SAAQ,wBAA6B;IAChC,SAAS,CAAC,QAAkB,EAAE,MAAc;QAC/C,kEAAkE;QAClE,4DAA4D;QAC5D,uBAAuB;QACtB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAS,CAClD,MAAM,EACN,IAAI,CAAC,KAAM,EACX,IAAI,CAAC,OAAO,CAAC,YAAY,CAC5B,CAAC;IACN,CAAC;CACJ;AAbD,4CAaC"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VariableLengthArrayBufferLikeFieldLengthValue = exports.VariableLengthArrayBufferLikeStructFieldValue = exports.VariableLengthArrayBufferLikeFieldDefinition = void 0;
|
|
4
|
-
const basic_1 = require("../basic");
|
|
5
|
-
const array_buffer_1 = require("./array-buffer");
|
|
6
|
-
class VariableLengthArrayBufferLikeFieldDefinition extends array_buffer_1.ArrayBufferLikeFieldDefinition {
|
|
7
|
-
getSize() {
|
|
8
|
-
return 0;
|
|
9
|
-
}
|
|
10
|
-
getDeserializeSize(struct) {
|
|
11
|
-
var _a;
|
|
12
|
-
let value = struct.value[this.options.lengthField];
|
|
13
|
-
if (typeof value === 'string') {
|
|
14
|
-
value = Number.parseInt(value, (_a = this.options.lengthFieldBase) !== null && _a !== void 0 ? _a : 10);
|
|
15
|
-
}
|
|
16
|
-
return value;
|
|
17
|
-
}
|
|
18
|
-
create(options, context, struct, value, arrayBuffer) {
|
|
19
|
-
return new VariableLengthArrayBufferLikeStructFieldValue(this, options, context, struct, value, arrayBuffer);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exports.VariableLengthArrayBufferLikeFieldDefinition = VariableLengthArrayBufferLikeFieldDefinition;
|
|
23
|
-
class VariableLengthArrayBufferLikeStructFieldValue extends array_buffer_1.ArrayBufferLikeFieldValue {
|
|
24
|
-
constructor(definition, options, context, struct, value, arrayBuffer) {
|
|
25
|
-
super(definition, options, context, struct, value, arrayBuffer);
|
|
26
|
-
if (arrayBuffer) {
|
|
27
|
-
this.length = arrayBuffer.byteLength;
|
|
28
|
-
}
|
|
29
|
-
// Patch the associated length field.
|
|
30
|
-
const lengthField = this.definition.options.lengthField;
|
|
31
|
-
const originalValue = struct.get(lengthField);
|
|
32
|
-
this.lengthFieldValue = new VariableLengthArrayBufferLikeFieldLengthValue(originalValue, this);
|
|
33
|
-
struct.set(lengthField, this.lengthFieldValue);
|
|
34
|
-
}
|
|
35
|
-
getSize() {
|
|
36
|
-
if (this.length === undefined) {
|
|
37
|
-
this.length = this.definition.type.getSize(this.value);
|
|
38
|
-
if (this.length === -1) {
|
|
39
|
-
this.arrayBuffer = this.definition.type.toArrayBuffer(this.value, this.context);
|
|
40
|
-
this.length = this.arrayBuffer.byteLength;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return this.length;
|
|
44
|
-
}
|
|
45
|
-
set(value) {
|
|
46
|
-
super.set(value);
|
|
47
|
-
this.arrayBuffer = undefined;
|
|
48
|
-
this.length = undefined;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
exports.VariableLengthArrayBufferLikeStructFieldValue = VariableLengthArrayBufferLikeStructFieldValue;
|
|
52
|
-
class VariableLengthArrayBufferLikeFieldLengthValue extends basic_1.StructFieldValue {
|
|
53
|
-
constructor(originalField, arrayBufferField) {
|
|
54
|
-
super(originalField.definition, originalField.options, originalField.context, originalField.struct, 0);
|
|
55
|
-
this.originalField = originalField;
|
|
56
|
-
this.arrayBufferField = arrayBufferField;
|
|
57
|
-
}
|
|
58
|
-
getSize() {
|
|
59
|
-
return this.originalField.getSize();
|
|
60
|
-
}
|
|
61
|
-
get() {
|
|
62
|
-
var _a;
|
|
63
|
-
let value = this.arrayBufferField.getSize();
|
|
64
|
-
const originalValue = this.originalField.get();
|
|
65
|
-
if (typeof originalValue === 'string') {
|
|
66
|
-
value = value.toString((_a = this.arrayBufferField.definition.options.lengthFieldBase) !== null && _a !== void 0 ? _a : 10);
|
|
67
|
-
}
|
|
68
|
-
return value;
|
|
69
|
-
}
|
|
70
|
-
set() { }
|
|
71
|
-
serialize(dataView, offset, context) {
|
|
72
|
-
this.originalField.set(this.get());
|
|
73
|
-
this.originalField.serialize(dataView, offset, context);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.VariableLengthArrayBufferLikeFieldLengthValue = VariableLengthArrayBufferLikeFieldLengthValue;
|
|
77
|
-
//# sourceMappingURL=variable-length-array-buffer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"variable-length-array-buffer.js","sourceRoot":"","sources":["../../src/types/variable-length-array-buffer.ts"],"names":[],"mappings":"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"}
|
package/cjs/utils.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.placeholder = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Returns a (fake) value of the given type.
|
|
6
|
-
*/
|
|
7
|
-
function placeholder() {
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
exports.placeholder = placeholder;
|
|
11
|
-
//# sourceMappingURL=utils.js.map
|
package/cjs/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AA6CA;;GAEG;AACH,SAAgB,WAAW;IACvB,OAAO,SAAyB,CAAC;AACrC,CAAC;AAFD,kCAEC"}
|