@yume-chan/struct 0.0.9 → 0.0.13
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 +65 -0
- package/CHANGELOG.md +39 -0
- package/LICENSE +21 -21
- package/README.md +769 -709
- package/esm/basic/definition.d.ts +44 -0
- package/esm/basic/definition.d.ts.map +1 -0
- package/esm/basic/definition.js +13 -9
- package/esm/basic/definition.js.map +1 -1
- package/esm/basic/field-value.d.ts +38 -0
- package/esm/basic/field-value.d.ts.map +1 -0
- package/esm/basic/field-value.js +13 -7
- package/esm/basic/field-value.js.map +1 -1
- package/esm/basic/index.d.ts +6 -0
- package/esm/basic/index.d.ts.map +1 -0
- package/esm/basic/index.js +5 -4
- package/esm/basic/index.js.map +1 -1
- package/esm/basic/options.d.ts +10 -0
- package/esm/basic/options.d.ts.map +1 -0
- package/esm/basic/{context.js → options.js} +1 -1
- package/esm/basic/options.js.map +1 -0
- package/esm/basic/stream.d.ts +19 -0
- package/esm/basic/stream.d.ts.map +1 -0
- package/esm/basic/stream.js +2 -0
- package/esm/basic/stream.js.map +1 -0
- package/{dts → esm}/basic/struct-value.d.ts +3 -3
- package/esm/basic/struct-value.d.ts.map +1 -0
- package/esm/basic/struct-value.js +7 -15
- package/esm/basic/struct-value.js.map +1 -1
- package/esm/index.d.ts +14 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +5 -5
- package/esm/index.js.map +1 -1
- package/{dts → esm}/struct.d.ts +25 -22
- package/esm/struct.d.ts.map +1 -0
- package/esm/struct.js +75 -52
- package/esm/struct.js.map +1 -1
- package/esm/syncbird.d.ts +65 -0
- package/esm/syncbird.d.ts.map +1 -0
- package/esm/syncbird.js +38 -0
- package/esm/syncbird.js.map +1 -0
- package/esm/types/bigint.d.ts +25 -0
- package/esm/types/bigint.d.ts.map +1 -0
- package/esm/types/bigint.js +45 -0
- package/esm/types/bigint.js.map +1 -0
- package/esm/types/buffer/base.d.ts +63 -0
- package/esm/types/buffer/base.d.ts.map +1 -0
- package/esm/types/buffer/base.js +100 -0
- package/esm/types/buffer/base.js.map +1 -0
- package/esm/types/buffer/fixed-length.d.ts +8 -0
- package/esm/types/buffer/fixed-length.d.ts.map +1 -0
- package/esm/types/buffer/fixed-length.js +8 -0
- package/esm/types/buffer/fixed-length.js.map +1 -0
- package/esm/types/buffer/index.d.ts +4 -0
- package/esm/types/buffer/index.d.ts.map +1 -0
- package/esm/types/buffer/index.js +4 -0
- package/esm/types/buffer/index.js.map +1 -0
- package/esm/types/buffer/variable-length.d.ts +43 -0
- package/esm/types/buffer/variable-length.d.ts.map +1 -0
- package/esm/types/buffer/variable-length.js +76 -0
- package/esm/types/buffer/variable-length.js.map +1 -0
- package/esm/types/index.d.ts +4 -0
- package/esm/types/index.d.ts.map +1 -0
- package/esm/types/index.js +3 -4
- package/esm/types/index.js.map +1 -1
- package/esm/types/number.d.ts +32 -0
- package/esm/types/number.d.ts.map +1 -0
- package/esm/types/number.js +26 -18
- package/esm/types/number.js.map +1 -1
- package/{dts → esm}/utils.d.ts +3 -2
- package/{dts → esm}/utils.d.ts.map +1 -1
- package/esm/utils.js +16 -0
- package/esm/utils.js.map +1 -1
- package/package.json +46 -49
- package/src/basic/definition.ts +70 -69
- package/src/basic/field-value.ts +67 -73
- package/src/basic/index.ts +5 -4
- package/src/basic/options.ts +19 -0
- package/src/basic/stream.ts +19 -0
- package/src/basic/struct-value.ts +39 -45
- package/src/index.ts +17 -5
- package/src/struct.ts +609 -575
- package/src/syncbird.ts +131 -0
- package/src/types/bigint.ts +102 -0
- package/src/types/buffer/base.ts +176 -0
- package/src/types/buffer/fixed-length.ts +17 -0
- package/src/types/buffer/index.ts +3 -0
- package/src/types/buffer/variable-length.ts +156 -0
- package/src/types/index.ts +3 -4
- package/src/types/number.ts +115 -100
- package/src/utils.ts +70 -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/dts/basic/context.d.ts +0 -36
- package/dts/basic/context.d.ts.map +0 -1
- package/dts/basic/definition.d.ts +0 -48
- package/dts/basic/definition.d.ts.map +0 -1
- package/dts/basic/field-value.d.ts +0 -40
- package/dts/basic/field-value.d.ts.map +0 -1
- package/dts/basic/index.d.ts +0 -5
- package/dts/basic/index.d.ts.map +0 -1
- package/dts/basic/struct-value.d.ts.map +0 -1
- package/dts/index.d.ts +0 -6
- package/dts/index.d.ts.map +0 -1
- package/dts/struct.d.ts.map +0 -1
- package/dts/types/array-buffer.d.ts +0 -70
- package/dts/types/array-buffer.d.ts.map +0 -1
- package/dts/types/fixed-length-array-buffer.d.ts +0 -8
- package/dts/types/fixed-length-array-buffer.d.ts.map +0 -1
- package/dts/types/index.d.ts +0 -5
- package/dts/types/index.d.ts.map +0 -1
- package/dts/types/number.d.ts +0 -33
- package/dts/types/number.d.ts.map +0 -1
- package/dts/types/variable-length-array-buffer.d.ts +0 -32
- package/dts/types/variable-length-array-buffer.d.ts.map +0 -1
- package/esm/basic/context.js.map +0 -1
- package/esm/types/array-buffer.js +0 -109
- package/esm/types/array-buffer.js.map +0 -1
- package/esm/types/fixed-length-array-buffer.js +0 -8
- package/esm/types/fixed-length-array-buffer.js.map +0 -1
- package/esm/types/variable-length-array-buffer.js +0 -71
- package/esm/types/variable-length-array-buffer.js.map +0 -1
- package/src/basic/context.ts +0 -42
- package/src/types/array-buffer.ts +0 -184
- package/src/types/fixed-length-array-buffer.ts +0 -17
- package/src/types/variable-length-array-buffer.ts +0 -145
- package/tsconfig.cjs.json +0 -11
- package/tsconfig.esm.json +0 -15
package/esm/struct.js
CHANGED
|
@@ -1,41 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
import { StructDefaultOptions, StructValue } from './basic';
|
|
3
|
-
import {
|
|
1
|
+
// cspell: ignore Syncbird
|
|
2
|
+
import { StructDefaultOptions, StructValue } from './basic/index.js';
|
|
3
|
+
import { Syncbird } from "./syncbird.js";
|
|
4
|
+
import { BigIntFieldDefinition, BigIntFieldType, FixedLengthBufferLikeFieldDefinition, NumberFieldDefinition, NumberFieldType, StringBufferFieldSubType, Uint8ArrayBufferFieldSubType, VariableLengthBufferLikeFieldDefinition } from './types/index.js';
|
|
4
5
|
export class Struct {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
return this.field(name, new VariableLengthArrayBufferLikeFieldDefinition(type, options));
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
this.arrayBuffer = (name, options) => {
|
|
18
|
-
return this.arrayBufferLike(name, ArrayBufferFieldType.instance, options);
|
|
19
|
-
};
|
|
20
|
-
this.uint8ClampedArray = (name, options) => {
|
|
21
|
-
return this.arrayBufferLike(name, Uint8ClampedArrayFieldType.instance, options);
|
|
22
|
-
};
|
|
23
|
-
this.string = (name, options) => {
|
|
24
|
-
return this.arrayBufferLike(name, StringFieldType.instance, options);
|
|
25
|
-
};
|
|
26
|
-
this.options = Object.assign(Object.assign({}, StructDefaultOptions), options);
|
|
27
|
-
}
|
|
6
|
+
TFields;
|
|
7
|
+
TOmitInitKey;
|
|
8
|
+
TExtra;
|
|
9
|
+
TInit;
|
|
10
|
+
TDeserializeResult;
|
|
11
|
+
options;
|
|
12
|
+
_size = 0;
|
|
28
13
|
/**
|
|
29
14
|
* Gets the static size (exclude fields that can change size at runtime)
|
|
30
15
|
*/
|
|
31
16
|
get size() { return this._size; }
|
|
17
|
+
_fields = [];
|
|
18
|
+
_extra = {};
|
|
19
|
+
_postDeserialized;
|
|
20
|
+
constructor(options) {
|
|
21
|
+
this.options = { ...StructDefaultOptions, ...options };
|
|
22
|
+
}
|
|
32
23
|
/**
|
|
33
24
|
* Appends a `StructFieldDefinition` to the `Struct
|
|
34
25
|
*/
|
|
35
26
|
field(name, definition) {
|
|
36
27
|
for (const field of this._fields) {
|
|
37
28
|
if (field[0] === name) {
|
|
38
|
-
throw new Error(`This struct already have a field with name '${name}'`);
|
|
29
|
+
throw new Error(`This struct already have a field with name '${String(name)}'`);
|
|
39
30
|
}
|
|
40
31
|
}
|
|
41
32
|
this._fields.push([name, definition]);
|
|
@@ -94,13 +85,16 @@ export class Struct {
|
|
|
94
85
|
uint32(name, typescriptType) {
|
|
95
86
|
return this.number(name, NumberFieldType.Uint32, typescriptType);
|
|
96
87
|
}
|
|
88
|
+
bigint(name, type, _typescriptType) {
|
|
89
|
+
return this.field(name, new BigIntFieldDefinition(type, _typescriptType));
|
|
90
|
+
}
|
|
97
91
|
/**
|
|
98
92
|
* Appends an `int64` field to the `Struct`
|
|
99
93
|
*
|
|
100
94
|
* Requires native `BigInt` support
|
|
101
95
|
*/
|
|
102
96
|
int64(name, _typescriptType) {
|
|
103
|
-
return this.
|
|
97
|
+
return this.bigint(name, BigIntFieldType.Int64, _typescriptType);
|
|
104
98
|
}
|
|
105
99
|
/**
|
|
106
100
|
* Appends an `uint64` field to the `Struct`
|
|
@@ -108,17 +102,31 @@ export class Struct {
|
|
|
108
102
|
* Requires native `BigInt` support
|
|
109
103
|
*/
|
|
110
104
|
uint64(name, _typescriptType) {
|
|
111
|
-
return this.
|
|
105
|
+
return this.bigint(name, BigIntFieldType.Uint64, _typescriptType);
|
|
112
106
|
}
|
|
107
|
+
arrayBufferLike = (name, type, options) => {
|
|
108
|
+
if ('length' in options) {
|
|
109
|
+
return this.field(name, new FixedLengthBufferLikeFieldDefinition(type, options));
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
return this.field(name, new VariableLengthBufferLikeFieldDefinition(type, options));
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
uint8Array = (name, options) => {
|
|
116
|
+
return this.arrayBufferLike(name, Uint8ArrayBufferFieldSubType.Instance, options);
|
|
117
|
+
};
|
|
118
|
+
string = (name, options) => {
|
|
119
|
+
return this.arrayBufferLike(name, StringBufferFieldSubType.Instance, options);
|
|
120
|
+
};
|
|
113
121
|
/**
|
|
114
|
-
* Adds some extra
|
|
122
|
+
* Adds some extra properties into every `Struct` value.
|
|
115
123
|
*
|
|
116
|
-
* Extra
|
|
124
|
+
* Extra properties will not affect serialize or deserialize process.
|
|
117
125
|
*
|
|
118
|
-
* Multiple calls to `extra` will merge all
|
|
126
|
+
* Multiple calls to `extra` will merge all properties together.
|
|
119
127
|
*
|
|
120
128
|
* @param value
|
|
121
|
-
* An object containing
|
|
129
|
+
* An object containing properties to be added to the result value. Accessors and methods are also allowed.
|
|
122
130
|
*/
|
|
123
131
|
extra(value) {
|
|
124
132
|
Object.assign(this._extra, Object.getOwnPropertyDescriptors(value));
|
|
@@ -128,28 +136,34 @@ export class Struct {
|
|
|
128
136
|
this._postDeserialized = callback;
|
|
129
137
|
return this;
|
|
130
138
|
}
|
|
131
|
-
deserialize(
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
139
|
+
deserialize(stream) {
|
|
140
|
+
const value = new StructValue();
|
|
141
|
+
Object.defineProperties(value.value, this._extra);
|
|
142
|
+
return Syncbird
|
|
143
|
+
.each(this._fields, ([name, definition]) => {
|
|
144
|
+
return Syncbird.resolve(definition.deserialize(this.options, stream, value)).then(fieldValue => {
|
|
137
145
|
value.set(name, fieldValue);
|
|
138
|
-
}
|
|
146
|
+
});
|
|
147
|
+
})
|
|
148
|
+
.then(() => {
|
|
149
|
+
const object = value.value;
|
|
150
|
+
// Run `postDeserialized`
|
|
139
151
|
if (this._postDeserialized) {
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
152
|
+
const override = this._postDeserialized.call(object, object);
|
|
153
|
+
// If it returns a new value, use that as result
|
|
154
|
+
// Otherwise it only inspects/mutates the object in place.
|
|
155
|
+
if (override) {
|
|
156
|
+
return override;
|
|
144
157
|
}
|
|
145
158
|
}
|
|
146
|
-
return
|
|
147
|
-
})
|
|
159
|
+
return object;
|
|
160
|
+
})
|
|
161
|
+
.valueOrPromise();
|
|
148
162
|
}
|
|
149
|
-
serialize(init,
|
|
163
|
+
serialize(init, output) {
|
|
150
164
|
const value = new StructValue();
|
|
151
165
|
for (const [name, definition] of this._fields) {
|
|
152
|
-
const fieldValue = definition.create(this.options,
|
|
166
|
+
const fieldValue = definition.create(this.options, value, init[name]);
|
|
153
167
|
value.set(name, fieldValue);
|
|
154
168
|
}
|
|
155
169
|
let structSize = 0;
|
|
@@ -160,14 +174,23 @@ export class Struct {
|
|
|
160
174
|
fieldsInfo.push({ fieldValue, size });
|
|
161
175
|
structSize += size;
|
|
162
176
|
}
|
|
163
|
-
|
|
164
|
-
|
|
177
|
+
let outputType = 'number';
|
|
178
|
+
if (!output) {
|
|
179
|
+
output = new Uint8Array(structSize);
|
|
180
|
+
outputType = 'Uint8Array';
|
|
181
|
+
}
|
|
182
|
+
const dataView = new DataView(output.buffer, output.byteOffset, output.byteLength);
|
|
165
183
|
let offset = 0;
|
|
166
184
|
for (const { fieldValue, size } of fieldsInfo) {
|
|
167
|
-
fieldValue.serialize(dataView, offset
|
|
185
|
+
fieldValue.serialize(dataView, offset);
|
|
168
186
|
offset += size;
|
|
169
187
|
}
|
|
170
|
-
|
|
188
|
+
if (outputType === 'number') {
|
|
189
|
+
return structSize;
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
return output;
|
|
193
|
+
}
|
|
171
194
|
}
|
|
172
195
|
}
|
|
173
196
|
//# sourceMappingURL=struct.js.map
|
package/esm/struct.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import Bluebird from 'bluebird';
|
|
2
|
+
export declare type Resolvable<R> = R | PromiseLike<R>;
|
|
3
|
+
export declare type IterateFunction<T, R> = (item: T, index: number, arrayLength: number) => Resolvable<R>;
|
|
4
|
+
export interface Syncbird<R> extends Bluebird<R> {
|
|
5
|
+
valueOrPromise(): R | PromiseLike<R>;
|
|
6
|
+
then<U>(onFulfill?: (value: R) => Resolvable<U>, onReject?: (error: any) => Resolvable<U>): Syncbird<U>;
|
|
7
|
+
then<TResult1 = R, TResult2 = never>(onfulfilled?: ((value: R) => Resolvable<TResult1>) | null, onrejected?: ((reason: any) => Resolvable<TResult2>) | null): Syncbird<TResult1 | TResult2>;
|
|
8
|
+
}
|
|
9
|
+
interface SyncbirdStatic {
|
|
10
|
+
/**
|
|
11
|
+
* Iterate over an array, or a promise of an array,
|
|
12
|
+
* which contains promises (or a mix of promises and values) with the given iterator function with the signature `(item, index, value)`
|
|
13
|
+
* where item is the resolved value of a respective promise in the input array.
|
|
14
|
+
* Iteration happens serially. If any promise in the input array is rejected the returned promise is rejected as well.
|
|
15
|
+
*
|
|
16
|
+
* Resolves to the original array unmodified, this method is meant to be used for side effects.
|
|
17
|
+
* If the iterator function returns a promise or a thenable, the result for the promise is awaited for before continuing with next iteration.
|
|
18
|
+
*/
|
|
19
|
+
each<R>(values: Resolvable<Iterable<Resolvable<R>>>, iterator: IterateFunction<R, any>): Syncbird<R[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Reduce an array, or a promise of an array,
|
|
22
|
+
* which contains a promises (or a mix of promises and values) with the given `reducer` function with the signature `(total, current, index, arrayLength)`
|
|
23
|
+
* where `item` is the resolved value of a respective promise in the input array.
|
|
24
|
+
* If any promise in the input array is rejected the returned promise is rejected as well.
|
|
25
|
+
*
|
|
26
|
+
* If the reducer function returns a promise or a thenable, the result for the promise is awaited for before continuing with next iteration.
|
|
27
|
+
*
|
|
28
|
+
* *The original array is not modified. If no `initialValue` is given and the array doesn't contain at least 2 items,
|
|
29
|
+
* the callback will not be called and `undefined` is returned.
|
|
30
|
+
*
|
|
31
|
+
* If `initialValue` is given and the array doesn't have at least 1 item, `initialValue` is returned.*
|
|
32
|
+
*/
|
|
33
|
+
reduce<R, U>(values: Resolvable<Iterable<Resolvable<R>>>, reducer: (total: U, current: R, index: number, arrayLength: number) => Resolvable<U>, initialValue?: U): Syncbird<U>;
|
|
34
|
+
/**
|
|
35
|
+
* Create a promise that is resolved with the given `value`. If `value` is a thenable or promise, the returned promise will assume its state.
|
|
36
|
+
*/
|
|
37
|
+
resolve(): Syncbird<void>;
|
|
38
|
+
resolve<R>(value: Resolvable<R>): Syncbird<R>;
|
|
39
|
+
try<R>(fn: () => Resolvable<R>): Syncbird<R>;
|
|
40
|
+
attempt<R>(fn: () => Resolvable<R>): Syncbird<R>;
|
|
41
|
+
/**
|
|
42
|
+
* Configure long stack traces, warnings, monitoring and cancellation.
|
|
43
|
+
* Note that even though false is the default here, a development environment might be detected which automatically
|
|
44
|
+
* enables long stack traces and warnings.
|
|
45
|
+
*/
|
|
46
|
+
config(options: {
|
|
47
|
+
/** Enable warnings */
|
|
48
|
+
warnings?: boolean | {
|
|
49
|
+
/** Enables all warnings except forgotten return statements. */
|
|
50
|
+
wForgottenReturn: boolean;
|
|
51
|
+
} | undefined;
|
|
52
|
+
/** Enable long stack traces */
|
|
53
|
+
longStackTraces?: boolean | undefined;
|
|
54
|
+
/** Enable cancellation */
|
|
55
|
+
cancellation?: boolean | undefined;
|
|
56
|
+
/** Enable monitoring */
|
|
57
|
+
monitoring?: boolean | undefined;
|
|
58
|
+
/** Enable async hooks */
|
|
59
|
+
asyncHooks?: boolean | undefined;
|
|
60
|
+
}): void;
|
|
61
|
+
new <R>(callback: (resolve: (thenableOrResult?: Resolvable<R>) => void, reject: (error?: any) => void, onCancel?: (callback: () => void) => void) => void): Syncbird<R>;
|
|
62
|
+
}
|
|
63
|
+
export declare const Syncbird: SyncbirdStatic;
|
|
64
|
+
export {};
|
|
65
|
+
//# sourceMappingURL=syncbird.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncbird.d.ts","sourceRoot":"","sources":["../src/syncbird.ts"],"names":[],"mappings":"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"}
|
package/esm/syncbird.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// cspell: ignore syncbird
|
|
2
|
+
import Bluebird from 'bluebird';
|
|
3
|
+
export const Syncbird = Bluebird.getNewLibraryCopy();
|
|
4
|
+
Syncbird.config({
|
|
5
|
+
asyncHooks: false,
|
|
6
|
+
cancellation: false,
|
|
7
|
+
longStackTraces: false,
|
|
8
|
+
monitoring: false,
|
|
9
|
+
warnings: false,
|
|
10
|
+
});
|
|
11
|
+
// Bluebird uses `_then` internally.
|
|
12
|
+
const _then = Syncbird.prototype._then;
|
|
13
|
+
Syncbird.prototype._then = function (onfulfilled, onrejected, _, receiver, internalData) {
|
|
14
|
+
if (this.isFulfilled()) {
|
|
15
|
+
if (!onfulfilled) {
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
// Synchronously call `onfulfilled`, and wrap the result in a new `Syncbird` object.
|
|
20
|
+
return Syncbird.resolve(onfulfilled.call(receiver, this.value(),
|
|
21
|
+
// Some Bluebird internal methods (for example `reduce`) need this `internalData`
|
|
22
|
+
internalData));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
// Forward to Bluebird's `_then` method.
|
|
27
|
+
return _then.call(this, onfulfilled, onrejected, _, receiver, internalData);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
Syncbird.prototype.valueOrPromise = function () {
|
|
31
|
+
if (this.isFulfilled()) {
|
|
32
|
+
return this.value();
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=syncbird.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncbird.js","sourceRoot":"","sources":["../src/syncbird.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAkFhC,MAAM,CAAC,MAAM,QAAQ,GAAmB,QAAQ,CAAC,iBAAiB,EAAS,CAAC;AAE5E,QAAQ,CAAC,MAAM,CAAC;IACZ,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,KAAK;CAClB,CAAC,CAAC;AAEH,oCAAoC;AACpC,MAAM,KAAK,GAAI,QAAQ,CAAC,SAAiB,CAAC,KAAK,CAAC;AAChD,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,UAEvB,WAA+E,EAC/E,UAAyD,EACzD,CAAQ,EACR,QAAiB,EACjB,YAAqB;IAErB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;QACpB,IAAI,CAAC,WAAW,EAAE;YACd,OAAO,IAAI,CAAC;SACf;aAAM;YACH,oFAAoF;YACpF,OAAO,QAAQ,CAAC,OAAO,CACnB,WAAW,CAAC,IAAI,CACZ,QAAQ,EACR,IAAI,CAAC,KAAK,EAAE;YACZ,iFAAiF;YACjF,YAAY,CACf,CACJ,CAAC;SACL;KACJ;SAAM;QACH,wCAAwC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;KAC/E;AACL,CAAC,CAAC;AAED,QAAQ,CAAC,SAAiB,CAAC,cAAc,GAAG;IACzC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;QACpB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;KACvB;SAAM;QACH,OAAO,IAAkB,CAAC;KAC7B;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { StructFieldDefinition, StructFieldValue, StructValue, type StructAsyncDeserializeStream, type StructDeserializeStream, type StructOptions } from "../basic/index.js";
|
|
2
|
+
declare type DataViewBigInt64Getter = (dataView: DataView, byteOffset: number, littleEndian: boolean | undefined) => bigint;
|
|
3
|
+
declare type DataViewBigInt64Setter = (dataView: DataView, byteOffset: number, value: bigint, littleEndian: boolean | undefined) => void;
|
|
4
|
+
export declare class BigIntFieldType {
|
|
5
|
+
readonly TTypeScriptType: bigint;
|
|
6
|
+
readonly size: number;
|
|
7
|
+
readonly getter: DataViewBigInt64Getter;
|
|
8
|
+
readonly setter: DataViewBigInt64Setter;
|
|
9
|
+
constructor(size: number, getter: DataViewBigInt64Getter, setter: DataViewBigInt64Setter);
|
|
10
|
+
static readonly Int64: BigIntFieldType;
|
|
11
|
+
static readonly Uint64: BigIntFieldType;
|
|
12
|
+
}
|
|
13
|
+
export declare class BigIntFieldDefinition<TType extends BigIntFieldType = BigIntFieldType, TTypeScriptType = TType["TTypeScriptType"]> extends StructFieldDefinition<void, TTypeScriptType> {
|
|
14
|
+
readonly type: TType;
|
|
15
|
+
constructor(type: TType, _typescriptType?: TTypeScriptType);
|
|
16
|
+
getSize(): number;
|
|
17
|
+
create(options: Readonly<StructOptions>, struct: StructValue, value: TTypeScriptType): BigIntFieldValue<this>;
|
|
18
|
+
deserialize(options: Readonly<StructOptions>, stream: StructDeserializeStream, struct: StructValue): BigIntFieldValue<this>;
|
|
19
|
+
deserialize(options: Readonly<StructOptions>, stream: StructAsyncDeserializeStream, struct: StructValue): Promise<BigIntFieldValue<this>>;
|
|
20
|
+
}
|
|
21
|
+
export declare class BigIntFieldValue<TDefinition extends BigIntFieldDefinition<BigIntFieldType, any>> extends StructFieldValue<TDefinition> {
|
|
22
|
+
serialize(dataView: DataView, offset: number): void;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=bigint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bigint.d.ts","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,4BAA4B,EAAE,KAAK,uBAAuB,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAI9K,aAAK,sBAAsB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,SAAS,KAAK,MAAM,CAAC;AAEpH,aAAK,sBAAsB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,SAAS,KAAK,IAAI,CAAC;AAEjI,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,kBAAoD;IAEhF,gBAAuB,MAAM,kBAAsD;CACtF;AAED,qBAAa,qBAAqB,CAC9B,KAAK,SAAS,eAAe,GAAG,eAAe,EAC/C,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,CACxC,SAAQ,qBAAqB,CAC/B,IAAI,EACJ,eAAe,CACd;IACD,SAAgB,IAAI,EAAE,KAAK,CAAC;gBAET,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,eAAe;IAK1D,OAAO,IAAI,MAAM;IAIjB,MAAM,CACT,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,eAAe,GACvB,gBAAgB,CAAC,IAAI,CAAC;IAIT,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,WAAW,GACpB,gBAAgB,CAAC,IAAI,CAAC;IACT,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,4BAA4B,EACpC,MAAM,EAAE,WAAW,GACpB,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAkBrC;AAED,qBAAa,gBAAgB,CACzB,WAAW,SAAS,qBAAqB,CAAC,eAAe,EAAE,GAAG,CAAC,CAC7D,SAAQ,gBAAgB,CAAC,WAAW,CAAC;IAChC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAQ7D"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// cspell: ignore syncbird
|
|
2
|
+
import { getBigInt64, getBigUint64, setBigInt64, setBigUint64 } from '@yume-chan/dataview-bigint-polyfill/esm/fallback.js';
|
|
3
|
+
import { StructFieldDefinition, StructFieldValue } from "../basic/index.js";
|
|
4
|
+
import { Syncbird } from "../syncbird.js";
|
|
5
|
+
export class BigIntFieldType {
|
|
6
|
+
TTypeScriptType;
|
|
7
|
+
size;
|
|
8
|
+
getter;
|
|
9
|
+
setter;
|
|
10
|
+
constructor(size, getter, setter) {
|
|
11
|
+
this.size = size;
|
|
12
|
+
this.getter = getter;
|
|
13
|
+
this.setter = setter;
|
|
14
|
+
}
|
|
15
|
+
static Int64 = new BigIntFieldType(8, getBigInt64, setBigInt64);
|
|
16
|
+
static Uint64 = new BigIntFieldType(8, getBigUint64, setBigUint64);
|
|
17
|
+
}
|
|
18
|
+
export class BigIntFieldDefinition extends StructFieldDefinition {
|
|
19
|
+
type;
|
|
20
|
+
constructor(type, _typescriptType) {
|
|
21
|
+
super();
|
|
22
|
+
this.type = type;
|
|
23
|
+
}
|
|
24
|
+
getSize() {
|
|
25
|
+
return this.type.size;
|
|
26
|
+
}
|
|
27
|
+
create(options, struct, value) {
|
|
28
|
+
return new BigIntFieldValue(this, options, struct, value);
|
|
29
|
+
}
|
|
30
|
+
deserialize(options, stream, struct) {
|
|
31
|
+
return Syncbird.try(() => {
|
|
32
|
+
return stream.read(this.getSize());
|
|
33
|
+
}).then(array => {
|
|
34
|
+
const view = new DataView(array.buffer, array.byteOffset, array.byteLength);
|
|
35
|
+
const value = this.type.getter(view, 0, options.littleEndian);
|
|
36
|
+
return this.create(options, struct, value);
|
|
37
|
+
}).valueOrPromise();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export class BigIntFieldValue extends StructFieldValue {
|
|
41
|
+
serialize(dataView, offset) {
|
|
42
|
+
this.definition.type.setter(dataView, offset, this.value, this.options.littleEndian);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=bigint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bigint.js","sourceRoot":"","sources":["../../src/types/bigint.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AAC3H,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAoG,MAAM,mBAAmB,CAAC;AAC9K,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO1C,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,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAEzE,MAAM,CAAU,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;;AAGvF,MAAM,OAAO,qBAGP,SAAQ,qBAGT;IACe,IAAI,CAAQ;IAE5B,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,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,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;YACrB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACZ,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAC1B,IAAI,EACJ,CAAC,EACD,OAAO,CAAC,YAAY,CACvB,CAAC;YACF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAY,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;CACJ;AAED,MAAM,OAAO,gBAEP,SAAQ,gBAA6B;IAChC,SAAS,CAAC,QAAkB,EAAE,MAAc;QAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CACvB,QAAQ,EACR,MAAM,EACN,IAAI,CAAC,KAAM,EACX,IAAI,CAAC,OAAO,CAAC,YAAY,CAC5B,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { StructFieldDefinition, StructFieldValue, StructValue, type StructAsyncDeserializeStream, type StructDeserializeStream, type StructOptions } from '../../basic/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base class for all types that
|
|
4
|
+
* can be converted from an `Uint8Array` when deserialized,
|
|
5
|
+
* and need to be converted to an `Uint8Array` when serializing
|
|
6
|
+
*
|
|
7
|
+
* @template TValue The actual TypeScript type of this type
|
|
8
|
+
* @template TTypeScriptType Optional another type (should be compatible with `TType`)
|
|
9
|
+
* specified by user when creating field definitions.
|
|
10
|
+
*/
|
|
11
|
+
export declare abstract class BufferFieldSubType<TValue = unknown, TTypeScriptType = TValue> {
|
|
12
|
+
readonly TTypeScriptType: TTypeScriptType;
|
|
13
|
+
/**
|
|
14
|
+
* When implemented in derived classes, converts the type-specific `value` to an `Uint8Array`
|
|
15
|
+
*
|
|
16
|
+
* This function should be "pure", i.e.,
|
|
17
|
+
* same `value` should always be converted to `Uint8Array`s that have same content.
|
|
18
|
+
*/
|
|
19
|
+
abstract toBuffer(value: TValue): Uint8Array;
|
|
20
|
+
/** When implemented in derived classes, converts the `Uint8Array` to a type-specific value */
|
|
21
|
+
abstract toValue(array: Uint8Array): TValue;
|
|
22
|
+
/**
|
|
23
|
+
* When implemented in derived classes, gets the size in byte of the type-specific `value`.
|
|
24
|
+
*
|
|
25
|
+
* If the size can't be calculated without first converting the `value` back to an `Uint8Array`,
|
|
26
|
+
* implementer can returns `-1`, so the caller will get its size by first converting it to
|
|
27
|
+
* an `Uint8Array` (and cache the result).
|
|
28
|
+
*/
|
|
29
|
+
abstract getSize(value: TValue): number;
|
|
30
|
+
}
|
|
31
|
+
/** An `BufferFieldSubType` that's actually an `Uint8Array` */
|
|
32
|
+
export declare class Uint8ArrayBufferFieldSubType extends BufferFieldSubType<Uint8Array> {
|
|
33
|
+
static readonly Instance: Uint8ArrayBufferFieldSubType;
|
|
34
|
+
protected constructor();
|
|
35
|
+
toBuffer(value: Uint8Array): Uint8Array;
|
|
36
|
+
toValue(buffer: Uint8Array): Uint8Array;
|
|
37
|
+
getSize(value: Uint8Array): number;
|
|
38
|
+
}
|
|
39
|
+
/** An `BufferFieldSubType` that converts between `Uint8Array` and `string` */
|
|
40
|
+
export declare class StringBufferFieldSubType<TTypeScriptType = string> extends BufferFieldSubType<string, TTypeScriptType> {
|
|
41
|
+
static readonly Instance: StringBufferFieldSubType<string>;
|
|
42
|
+
toBuffer(value: string): Uint8Array;
|
|
43
|
+
toValue(array: Uint8Array): string;
|
|
44
|
+
getSize(): number;
|
|
45
|
+
}
|
|
46
|
+
export declare abstract class BufferLikeFieldDefinition<TType extends BufferFieldSubType<any, any> = BufferFieldSubType<unknown, unknown>, TOptions = void, TOmitInitKey extends PropertyKey = never> extends StructFieldDefinition<TOptions, TType['TTypeScriptType'], TOmitInitKey> {
|
|
47
|
+
readonly type: TType;
|
|
48
|
+
constructor(type: TType, options: TOptions);
|
|
49
|
+
protected getDeserializeSize(struct: StructValue): number;
|
|
50
|
+
/**
|
|
51
|
+
* When implemented in derived classes, creates a `StructFieldValue` for the current field definition.
|
|
52
|
+
*/
|
|
53
|
+
create(options: Readonly<StructOptions>, struct: StructValue, value: TType['TTypeScriptType'], array?: Uint8Array): BufferLikeFieldValue<this>;
|
|
54
|
+
deserialize(options: Readonly<StructOptions>, stream: StructDeserializeStream, struct: StructValue): BufferLikeFieldValue<this>;
|
|
55
|
+
deserialize(options: Readonly<StructOptions>, stream: StructAsyncDeserializeStream, struct: StructValue): Promise<BufferLikeFieldValue<this>>;
|
|
56
|
+
}
|
|
57
|
+
export declare class BufferLikeFieldValue<TDefinition extends BufferLikeFieldDefinition<BufferFieldSubType<unknown, unknown>, any, any>> extends StructFieldValue<TDefinition> {
|
|
58
|
+
protected array: Uint8Array | undefined;
|
|
59
|
+
constructor(definition: TDefinition, options: Readonly<StructOptions>, struct: StructValue, value: TDefinition['TValue'], array?: Uint8Array);
|
|
60
|
+
set(value: TDefinition['TValue']): void;
|
|
61
|
+
serialize(dataView: DataView, offset: number): void;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/types/buffer/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// cspell: ignore syncbird
|
|
2
|
+
import { StructFieldDefinition, StructFieldValue } from '../../basic/index.js';
|
|
3
|
+
import { Syncbird } from "../../syncbird.js";
|
|
4
|
+
import { decodeUtf8, encodeUtf8 } from "../../utils.js";
|
|
5
|
+
/**
|
|
6
|
+
* Base class for all types that
|
|
7
|
+
* can be converted from an `Uint8Array` when deserialized,
|
|
8
|
+
* and need to be converted to an `Uint8Array` when serializing
|
|
9
|
+
*
|
|
10
|
+
* @template TValue The actual TypeScript type of this type
|
|
11
|
+
* @template TTypeScriptType Optional another type (should be compatible with `TType`)
|
|
12
|
+
* specified by user when creating field definitions.
|
|
13
|
+
*/
|
|
14
|
+
export class BufferFieldSubType {
|
|
15
|
+
TTypeScriptType;
|
|
16
|
+
}
|
|
17
|
+
/** An `BufferFieldSubType` that's actually an `Uint8Array` */
|
|
18
|
+
export class Uint8ArrayBufferFieldSubType extends BufferFieldSubType {
|
|
19
|
+
static Instance = new Uint8ArrayBufferFieldSubType();
|
|
20
|
+
constructor() {
|
|
21
|
+
super();
|
|
22
|
+
}
|
|
23
|
+
toBuffer(value) {
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
toValue(buffer) {
|
|
27
|
+
return buffer;
|
|
28
|
+
}
|
|
29
|
+
getSize(value) {
|
|
30
|
+
return value.byteLength;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** An `BufferFieldSubType` that converts between `Uint8Array` and `string` */
|
|
34
|
+
export class StringBufferFieldSubType extends BufferFieldSubType {
|
|
35
|
+
static Instance = new StringBufferFieldSubType();
|
|
36
|
+
toBuffer(value) {
|
|
37
|
+
return encodeUtf8(value);
|
|
38
|
+
}
|
|
39
|
+
toValue(array) {
|
|
40
|
+
return decodeUtf8(array);
|
|
41
|
+
}
|
|
42
|
+
getSize() {
|
|
43
|
+
// Return `-1`, so `BufferLikeFieldDefinition` will
|
|
44
|
+
// convert this `value` into an `Uint8Array` (and cache the result),
|
|
45
|
+
// Then get the size from that `Uint8Array`
|
|
46
|
+
return -1;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const EmptyBuffer = new Uint8Array(0);
|
|
50
|
+
export class BufferLikeFieldDefinition extends StructFieldDefinition {
|
|
51
|
+
type;
|
|
52
|
+
constructor(type, options) {
|
|
53
|
+
super(options);
|
|
54
|
+
this.type = type;
|
|
55
|
+
}
|
|
56
|
+
getDeserializeSize(struct) {
|
|
57
|
+
return this.getSize();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* When implemented in derived classes, creates a `StructFieldValue` for the current field definition.
|
|
61
|
+
*/
|
|
62
|
+
create(options, struct, value, array) {
|
|
63
|
+
return new BufferLikeFieldValue(this, options, struct, value, array);
|
|
64
|
+
}
|
|
65
|
+
deserialize(options, stream, struct) {
|
|
66
|
+
return Syncbird.try(() => {
|
|
67
|
+
const size = this.getDeserializeSize(struct);
|
|
68
|
+
if (size === 0) {
|
|
69
|
+
return EmptyBuffer;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
return stream.read(size);
|
|
73
|
+
}
|
|
74
|
+
}).then(array => {
|
|
75
|
+
const value = this.type.toValue(array);
|
|
76
|
+
return this.create(options, struct, value, array);
|
|
77
|
+
}).valueOrPromise();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export class BufferLikeFieldValue extends StructFieldValue {
|
|
81
|
+
array;
|
|
82
|
+
constructor(definition, options, struct, value, array) {
|
|
83
|
+
super(definition, options, struct, value);
|
|
84
|
+
this.array = array;
|
|
85
|
+
}
|
|
86
|
+
set(value) {
|
|
87
|
+
super.set(value);
|
|
88
|
+
// When value changes, clear the cached `array`
|
|
89
|
+
// It will be lazily calculated in `serialize()`
|
|
90
|
+
this.array = undefined;
|
|
91
|
+
}
|
|
92
|
+
serialize(dataView, offset) {
|
|
93
|
+
if (!this.array) {
|
|
94
|
+
this.array = this.definition.type.toBuffer(this.value);
|
|
95
|
+
}
|
|
96
|
+
new Uint8Array(dataView.buffer, dataView.byteOffset, dataView.byteLength)
|
|
97
|
+
.set(this.array, offset);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/types/buffer/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BufferLikeFieldDefinition, type BufferFieldSubType } from "./base.js";
|
|
2
|
+
export interface FixedLengthBufferLikeFieldOptions {
|
|
3
|
+
length: number;
|
|
4
|
+
}
|
|
5
|
+
export declare class FixedLengthBufferLikeFieldDefinition<TType extends BufferFieldSubType = BufferFieldSubType, TOptions extends FixedLengthBufferLikeFieldOptions = FixedLengthBufferLikeFieldOptions> extends BufferLikeFieldDefinition<TType, TOptions> {
|
|
6
|
+
getSize(): number;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=fixed-length.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixed-length.d.ts","sourceRoot":"","sources":["../../../src/types/buffer/fixed-length.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/E,MAAM,WAAW,iCAAiC;IAC9C,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,oCAAoC,CAC7C,KAAK,SAAS,kBAAkB,GAAG,kBAAkB,EACrD,QAAQ,SAAS,iCAAiC,GAAG,iCAAiC,CACpF,SAAQ,yBAAyB,CACnC,KAAK,EACL,QAAQ,CACP;IACM,OAAO,IAAI,MAAM;CAG3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixed-length.js","sourceRoot":"","sources":["../../../src/types/buffer/fixed-length.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAA2B,MAAM,WAAW,CAAC;AAM/E,MAAM,OAAO,oCAGP,SAAQ,yBAGT;IACM,OAAO;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;CACJ;AAAA,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/buffer/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
|