@yume-chan/struct 0.0.10 → 0.0.12
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 +27 -0
- package/CHANGELOG.md +16 -1
- package/LICENSE +1 -1
- package/README.md +102 -53
- package/{dts → esm}/basic/definition.d.ts +9 -13
- 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/{dts → esm}/basic/field-value.d.ts +8 -8
- package/esm/basic/field-value.d.ts.map +1 -0
- package/esm/basic/field-value.js +12 -5
- 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 -9
- 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 +16 -12
- package/esm/struct.d.ts.map +1 -0
- package/esm/struct.js +67 -54
- 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 +15 -4
- package/esm/syncbird.js.map +1 -1
- 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/{dts → esm}/types/number.d.ts +10 -12
- package/esm/types/number.d.ts.map +1 -0
- package/esm/types/number.js +21 -14
- package/esm/types/number.js.map +1 -1
- package/{dts → esm}/utils.d.ts +2 -2
- package/{dts → esm}/utils.d.ts.map +1 -1
- package/esm/utils.js +9 -3
- package/esm/utils.js.map +1 -1
- package/package.json +47 -47
- package/src/basic/definition.ts +11 -13
- package/src/basic/field-value.ts +8 -8
- 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 +4 -4
- package/src/index.ts +17 -5
- package/src/struct.ts +89 -75
- package/src/syncbird.ts +86 -10
- 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/{variable-length-array-buffer.ts → buffer/variable-length.ts} +48 -34
- package/src/types/index.ts +3 -4
- package/src/types/number.ts +27 -26
- package/src/utils.ts +13 -5
- package/dts/basic/context.d.ts +0 -28
- package/dts/basic/context.d.ts.map +0 -1
- package/dts/basic/definition.d.ts.map +0 -1
- 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/syncbird.d.ts +0 -20
- package/dts/syncbird.d.ts.map +0 -1
- package/dts/types/array-buffer.d.ts +0 -71
- 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.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 -110
- 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 -32
- package/src/types/array-buffer.ts +0 -194
- package/src/types/fixed-length-array-buffer.ts +0 -17
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
// cspell: ignore syncbird
|
|
2
|
+
|
|
3
|
+
import { StructFieldDefinition, StructFieldValue, StructValue, type StructAsyncDeserializeStream, type StructDeserializeStream, type StructOptions } from '../../basic/index.js';
|
|
4
|
+
import { Syncbird } from "../../syncbird.js";
|
|
5
|
+
import { decodeUtf8, encodeUtf8, type ValueOrPromise } from "../../utils.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Base class for all types that
|
|
9
|
+
* can be converted from an `Uint8Array` when deserialized,
|
|
10
|
+
* and need to be converted to an `Uint8Array` when serializing
|
|
11
|
+
*
|
|
12
|
+
* @template TValue The actual TypeScript type of this type
|
|
13
|
+
* @template TTypeScriptType Optional another type (should be compatible with `TType`)
|
|
14
|
+
* specified by user when creating field definitions.
|
|
15
|
+
*/
|
|
16
|
+
export abstract class BufferFieldSubType<TValue = unknown, TTypeScriptType = TValue> {
|
|
17
|
+
public readonly TTypeScriptType!: TTypeScriptType;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* When implemented in derived classes, converts the type-specific `value` to an `Uint8Array`
|
|
21
|
+
*
|
|
22
|
+
* This function should be "pure", i.e.,
|
|
23
|
+
* same `value` should always be converted to `Uint8Array`s that have same content.
|
|
24
|
+
*/
|
|
25
|
+
public abstract toBuffer(value: TValue): Uint8Array;
|
|
26
|
+
|
|
27
|
+
/** When implemented in derived classes, converts the `Uint8Array` to a type-specific value */
|
|
28
|
+
public abstract toValue(array: Uint8Array): TValue;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* When implemented in derived classes, gets the size in byte of the type-specific `value`.
|
|
32
|
+
*
|
|
33
|
+
* If the size can't be calculated without first converting the `value` back to an `Uint8Array`,
|
|
34
|
+
* implementer can returns `-1`, so the caller will get its size by first converting it to
|
|
35
|
+
* an `Uint8Array` (and cache the result).
|
|
36
|
+
*/
|
|
37
|
+
public abstract getSize(value: TValue): number;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** An `BufferFieldSubType` that's actually an `Uint8Array` */
|
|
41
|
+
export class Uint8ArrayBufferFieldSubType extends BufferFieldSubType<Uint8Array> {
|
|
42
|
+
public static readonly Instance = new Uint8ArrayBufferFieldSubType();
|
|
43
|
+
|
|
44
|
+
protected constructor() {
|
|
45
|
+
super();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public toBuffer(value: Uint8Array): Uint8Array {
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public toValue(buffer: Uint8Array): Uint8Array {
|
|
53
|
+
return buffer;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public getSize(value: Uint8Array): number {
|
|
57
|
+
return value.byteLength;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** An `BufferFieldSubType` that converts between `Uint8Array` and `string` */
|
|
62
|
+
export class StringBufferFieldSubType<TTypeScriptType = string>
|
|
63
|
+
extends BufferFieldSubType<string, TTypeScriptType> {
|
|
64
|
+
public static readonly Instance = new StringBufferFieldSubType();
|
|
65
|
+
|
|
66
|
+
public toBuffer(value: string): Uint8Array {
|
|
67
|
+
return encodeUtf8(value);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
public toValue(array: Uint8Array): string {
|
|
71
|
+
return decodeUtf8(array);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
public getSize(): number {
|
|
75
|
+
// Return `-1`, so `BufferLikeFieldDefinition` will
|
|
76
|
+
// convert this `value` into an `Uint8Array` (and cache the result),
|
|
77
|
+
// Then get the size from that `Uint8Array`
|
|
78
|
+
return -1;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const EmptyBuffer = new Uint8Array(0);
|
|
83
|
+
|
|
84
|
+
export abstract class BufferLikeFieldDefinition<
|
|
85
|
+
TType extends BufferFieldSubType<any, any> = BufferFieldSubType<unknown, unknown>,
|
|
86
|
+
TOptions = void,
|
|
87
|
+
TOmitInitKey extends PropertyKey = never,
|
|
88
|
+
> extends StructFieldDefinition<
|
|
89
|
+
TOptions,
|
|
90
|
+
TType['TTypeScriptType'],
|
|
91
|
+
TOmitInitKey
|
|
92
|
+
>{
|
|
93
|
+
public readonly type: TType;
|
|
94
|
+
|
|
95
|
+
public constructor(type: TType, options: TOptions) {
|
|
96
|
+
super(options);
|
|
97
|
+
this.type = type;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
protected getDeserializeSize(struct: StructValue): number {
|
|
101
|
+
return this.getSize();
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* When implemented in derived classes, creates a `StructFieldValue` for the current field definition.
|
|
106
|
+
*/
|
|
107
|
+
public create(
|
|
108
|
+
options: Readonly<StructOptions>,
|
|
109
|
+
struct: StructValue,
|
|
110
|
+
value: TType['TTypeScriptType'],
|
|
111
|
+
array?: Uint8Array,
|
|
112
|
+
): BufferLikeFieldValue<this> {
|
|
113
|
+
return new BufferLikeFieldValue(this, options, struct, value, array);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
public override deserialize(
|
|
117
|
+
options: Readonly<StructOptions>,
|
|
118
|
+
stream: StructDeserializeStream,
|
|
119
|
+
struct: StructValue,
|
|
120
|
+
): BufferLikeFieldValue<this>;
|
|
121
|
+
public override deserialize(
|
|
122
|
+
options: Readonly<StructOptions>,
|
|
123
|
+
stream: StructAsyncDeserializeStream,
|
|
124
|
+
struct: StructValue,
|
|
125
|
+
): Promise<BufferLikeFieldValue<this>>;
|
|
126
|
+
public override deserialize(
|
|
127
|
+
options: Readonly<StructOptions>,
|
|
128
|
+
stream: StructDeserializeStream | StructAsyncDeserializeStream,
|
|
129
|
+
struct: StructValue,
|
|
130
|
+
): ValueOrPromise<BufferLikeFieldValue<this>> {
|
|
131
|
+
return Syncbird.try(() => {
|
|
132
|
+
const size = this.getDeserializeSize(struct);
|
|
133
|
+
if (size === 0) {
|
|
134
|
+
return EmptyBuffer;
|
|
135
|
+
} else {
|
|
136
|
+
return stream.read(size);
|
|
137
|
+
}
|
|
138
|
+
}).then(array => {
|
|
139
|
+
const value = this.type.toValue(array);
|
|
140
|
+
return this.create(options, struct, value, array);
|
|
141
|
+
}).valueOrPromise();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export class BufferLikeFieldValue<
|
|
146
|
+
TDefinition extends BufferLikeFieldDefinition<BufferFieldSubType<unknown, unknown>, any, any>,
|
|
147
|
+
> extends StructFieldValue<TDefinition> {
|
|
148
|
+
protected array: Uint8Array | undefined;
|
|
149
|
+
|
|
150
|
+
public constructor(
|
|
151
|
+
definition: TDefinition,
|
|
152
|
+
options: Readonly<StructOptions>,
|
|
153
|
+
struct: StructValue,
|
|
154
|
+
value: TDefinition['TValue'],
|
|
155
|
+
array?: Uint8Array,
|
|
156
|
+
) {
|
|
157
|
+
super(definition, options, struct, value);
|
|
158
|
+
this.array = array;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
public override set(value: TDefinition['TValue']): void {
|
|
162
|
+
super.set(value);
|
|
163
|
+
// When value changes, clear the cached `array`
|
|
164
|
+
// It will be lazily calculated in `serialize()`
|
|
165
|
+
this.array = undefined;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
public serialize(dataView: DataView, offset: number): void {
|
|
169
|
+
if (!this.array) {
|
|
170
|
+
this.array = this.definition.type.toBuffer(this.value);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
new Uint8Array(dataView.buffer, dataView.byteOffset, dataView.byteLength)
|
|
174
|
+
.set(this.array, offset);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BufferLikeFieldDefinition, type BufferFieldSubType } from "./base.js";
|
|
2
|
+
|
|
3
|
+
export interface FixedLengthBufferLikeFieldOptions {
|
|
4
|
+
length: number;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export class FixedLengthBufferLikeFieldDefinition<
|
|
8
|
+
TType extends BufferFieldSubType = BufferFieldSubType,
|
|
9
|
+
TOptions extends FixedLengthBufferLikeFieldOptions = FixedLengthBufferLikeFieldOptions,
|
|
10
|
+
> extends BufferLikeFieldDefinition<
|
|
11
|
+
TType,
|
|
12
|
+
TOptions
|
|
13
|
+
> {
|
|
14
|
+
public getSize(): number {
|
|
15
|
+
return this.options.length;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
@@ -1,22 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { KeysOfType } from '
|
|
3
|
-
import {
|
|
1
|
+
import { StructFieldValue, type StructFieldDefinition, type StructOptions, type StructValue } from '../../basic/index.js';
|
|
2
|
+
import type { KeysOfType } from '../../utils.js';
|
|
3
|
+
import { BufferLikeFieldDefinition, BufferLikeFieldValue, type BufferFieldSubType } from './base.js';
|
|
4
4
|
|
|
5
5
|
export type LengthField<TFields> = KeysOfType<TFields, number | string>;
|
|
6
6
|
|
|
7
|
-
export interface
|
|
7
|
+
export interface VariableLengthBufferLikeFieldOptions<
|
|
8
8
|
TFields = object,
|
|
9
9
|
TLengthField extends LengthField<TFields> = any,
|
|
10
10
|
> {
|
|
11
|
+
/**
|
|
12
|
+
* The name of the field that contains the length of the buffer.
|
|
13
|
+
*
|
|
14
|
+
* This field must be a `number` or `string` (can't be `bigint`) field.
|
|
15
|
+
*/
|
|
11
16
|
lengthField: TLengthField;
|
|
12
17
|
|
|
13
|
-
|
|
18
|
+
/**
|
|
19
|
+
* If the `lengthField` refers to a string field,
|
|
20
|
+
* what radix to use when converting the string to a number.
|
|
21
|
+
*
|
|
22
|
+
* @default 10
|
|
23
|
+
*/
|
|
24
|
+
lengthFieldRadix?: number;
|
|
14
25
|
}
|
|
15
26
|
|
|
16
|
-
export class
|
|
17
|
-
TType extends
|
|
18
|
-
TOptions extends
|
|
19
|
-
> extends
|
|
27
|
+
export class VariableLengthBufferLikeFieldDefinition<
|
|
28
|
+
TType extends BufferFieldSubType = BufferFieldSubType,
|
|
29
|
+
TOptions extends VariableLengthBufferLikeFieldOptions = VariableLengthBufferLikeFieldOptions
|
|
30
|
+
> extends BufferLikeFieldDefinition<
|
|
20
31
|
TType,
|
|
21
32
|
TOptions,
|
|
22
33
|
TOptions['lengthField']
|
|
@@ -28,7 +39,7 @@ export class VariableLengthArrayBufferLikeFieldDefinition<
|
|
|
28
39
|
protected override getDeserializeSize(struct: StructValue) {
|
|
29
40
|
let value = struct.value[this.options.lengthField] as number | string;
|
|
30
41
|
if (typeof value === 'string') {
|
|
31
|
-
value = Number.parseInt(value, this.options.
|
|
42
|
+
value = Number.parseInt(value, this.options.lengthFieldRadix ?? 10);
|
|
32
43
|
}
|
|
33
44
|
return value;
|
|
34
45
|
}
|
|
@@ -37,43 +48,43 @@ export class VariableLengthArrayBufferLikeFieldDefinition<
|
|
|
37
48
|
options: Readonly<StructOptions>,
|
|
38
49
|
struct: StructValue,
|
|
39
50
|
value: TType['TTypeScriptType'],
|
|
40
|
-
|
|
41
|
-
):
|
|
42
|
-
return new
|
|
51
|
+
array?: Uint8Array
|
|
52
|
+
): VariableLengthBufferLikeStructFieldValue<this> {
|
|
53
|
+
return new VariableLengthBufferLikeStructFieldValue(
|
|
43
54
|
this,
|
|
44
55
|
options,
|
|
45
56
|
struct,
|
|
46
57
|
value,
|
|
47
|
-
|
|
58
|
+
array,
|
|
48
59
|
);
|
|
49
60
|
}
|
|
50
61
|
}
|
|
51
62
|
|
|
52
|
-
export class
|
|
53
|
-
TDefinition extends
|
|
54
|
-
> extends
|
|
63
|
+
export class VariableLengthBufferLikeStructFieldValue<
|
|
64
|
+
TDefinition extends VariableLengthBufferLikeFieldDefinition = VariableLengthBufferLikeFieldDefinition,
|
|
65
|
+
> extends BufferLikeFieldValue<TDefinition> {
|
|
55
66
|
protected length: number | undefined;
|
|
56
67
|
|
|
57
|
-
protected lengthFieldValue:
|
|
68
|
+
protected lengthFieldValue: VariableLengthBufferLikeFieldLengthValue;
|
|
58
69
|
|
|
59
70
|
public constructor(
|
|
60
71
|
definition: TDefinition,
|
|
61
72
|
options: Readonly<StructOptions>,
|
|
62
73
|
struct: StructValue,
|
|
63
74
|
value: TDefinition['TValue'],
|
|
64
|
-
|
|
75
|
+
array?: Uint8Array,
|
|
65
76
|
) {
|
|
66
|
-
super(definition, options, struct, value,
|
|
77
|
+
super(definition, options, struct, value, array);
|
|
67
78
|
|
|
68
|
-
if (
|
|
69
|
-
this.length =
|
|
79
|
+
if (array) {
|
|
80
|
+
this.length = array.byteLength;
|
|
70
81
|
}
|
|
71
82
|
|
|
72
83
|
// Patch the associated length field.
|
|
73
84
|
const lengthField = this.definition.options.lengthField;
|
|
74
85
|
|
|
75
86
|
const originalValue = struct.get(lengthField);
|
|
76
|
-
this.lengthFieldValue = new
|
|
87
|
+
this.lengthFieldValue = new VariableLengthBufferLikeFieldLengthValue(
|
|
77
88
|
originalValue,
|
|
78
89
|
this,
|
|
79
90
|
);
|
|
@@ -84,8 +95,8 @@ export class VariableLengthArrayBufferLikeStructFieldValue<
|
|
|
84
95
|
if (this.length === undefined) {
|
|
85
96
|
this.length = this.definition.type.getSize(this.value);
|
|
86
97
|
if (this.length === -1) {
|
|
87
|
-
this.
|
|
88
|
-
this.length = this.
|
|
98
|
+
this.array = this.definition.type.toBuffer(this.value);
|
|
99
|
+
this.length = this.array.byteLength;
|
|
89
100
|
}
|
|
90
101
|
}
|
|
91
102
|
|
|
@@ -94,24 +105,24 @@ export class VariableLengthArrayBufferLikeStructFieldValue<
|
|
|
94
105
|
|
|
95
106
|
public override set(value: unknown) {
|
|
96
107
|
super.set(value);
|
|
97
|
-
this.
|
|
108
|
+
this.array = undefined;
|
|
98
109
|
this.length = undefined;
|
|
99
110
|
}
|
|
100
111
|
}
|
|
101
112
|
|
|
102
|
-
// Not using `
|
|
103
|
-
type
|
|
104
|
-
StructFieldValue<StructFieldDefinition<
|
|
113
|
+
// Not using `VariableLengthBufferLikeStructFieldValue` directly makes writing tests much easier...
|
|
114
|
+
type VariableLengthBufferLikeFieldValueLike =
|
|
115
|
+
StructFieldValue<StructFieldDefinition<VariableLengthBufferLikeFieldOptions, any, any>>;
|
|
105
116
|
|
|
106
|
-
export class
|
|
117
|
+
export class VariableLengthBufferLikeFieldLengthValue
|
|
107
118
|
extends StructFieldValue {
|
|
108
119
|
protected originalField: StructFieldValue;
|
|
109
120
|
|
|
110
|
-
protected arrayBufferField:
|
|
121
|
+
protected arrayBufferField: VariableLengthBufferLikeFieldValueLike;
|
|
111
122
|
|
|
112
123
|
public constructor(
|
|
113
124
|
originalField: StructFieldValue,
|
|
114
|
-
arrayBufferField:
|
|
125
|
+
arrayBufferField: VariableLengthBufferLikeFieldValueLike,
|
|
115
126
|
) {
|
|
116
127
|
super(originalField.definition, originalField.options, originalField.struct, 0);
|
|
117
128
|
this.originalField = originalField;
|
|
@@ -127,13 +138,16 @@ export class VariableLengthArrayBufferLikeFieldLengthValue
|
|
|
127
138
|
|
|
128
139
|
const originalValue = this.originalField.get();
|
|
129
140
|
if (typeof originalValue === 'string') {
|
|
130
|
-
value = value.toString(this.arrayBufferField.definition.options.
|
|
141
|
+
value = value.toString(this.arrayBufferField.definition.options.lengthFieldRadix ?? 10);
|
|
131
142
|
}
|
|
132
143
|
|
|
133
144
|
return value;
|
|
134
145
|
}
|
|
135
146
|
|
|
136
|
-
public override set() {
|
|
147
|
+
public override set() {
|
|
148
|
+
// Ignore setting
|
|
149
|
+
// It will always be in sync with the buffer size
|
|
150
|
+
}
|
|
137
151
|
|
|
138
152
|
serialize(dataView: DataView, offset: number) {
|
|
139
153
|
this.originalField.set(this.get());
|
package/src/types/index.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from './variable-length-array-buffer';
|
|
1
|
+
export * from "./bigint.js";
|
|
2
|
+
export * from "./buffer/index.js";
|
|
3
|
+
export * from "./number.js";
|
package/src/types/number.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import {
|
|
1
|
+
// cspell: ignore syncbird
|
|
2
|
+
|
|
3
|
+
import { StructFieldDefinition, StructFieldValue, StructValue, type StructAsyncDeserializeStream, type StructDeserializeStream, type StructOptions } from '../basic/index.js';
|
|
4
|
+
import { Syncbird } from "../syncbird.js";
|
|
5
|
+
import type { ValueOrPromise } from "../utils.js";
|
|
4
6
|
|
|
5
7
|
export type DataViewGetters =
|
|
6
8
|
{ [TKey in keyof DataView]: TKey extends `get${string}` ? TKey : never }[keyof DataView];
|
|
@@ -8,8 +10,8 @@ export type DataViewGetters =
|
|
|
8
10
|
export type DataViewSetters =
|
|
9
11
|
{ [TKey in keyof DataView]: TKey extends `set${string}` ? TKey : never }[keyof DataView];
|
|
10
12
|
|
|
11
|
-
export class NumberFieldType
|
|
12
|
-
public readonly TTypeScriptType!:
|
|
13
|
+
export class NumberFieldType {
|
|
14
|
+
public readonly TTypeScriptType!: number;
|
|
13
15
|
|
|
14
16
|
public readonly size: number;
|
|
15
17
|
|
|
@@ -27,26 +29,22 @@ export class NumberFieldType<TTypeScriptType extends number | bigint = number |
|
|
|
27
29
|
this.dataViewSetter = dataViewSetter;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
|
-
public static readonly Int8 = new NumberFieldType
|
|
31
|
-
|
|
32
|
-
public static readonly Uint8 = new NumberFieldType<number>(1, 'getUint8', 'setUint8');
|
|
33
|
-
|
|
34
|
-
public static readonly Int16 = new NumberFieldType<number>(2, 'getInt16', 'setInt16');
|
|
32
|
+
public static readonly Int8 = new NumberFieldType(1, 'getInt8', 'setInt8');
|
|
35
33
|
|
|
36
|
-
public static readonly
|
|
34
|
+
public static readonly Uint8 = new NumberFieldType(1, 'getUint8', 'setUint8');
|
|
37
35
|
|
|
38
|
-
public static readonly
|
|
36
|
+
public static readonly Int16 = new NumberFieldType(2, 'getInt16', 'setInt16');
|
|
39
37
|
|
|
40
|
-
public static readonly
|
|
38
|
+
public static readonly Uint16 = new NumberFieldType(2, 'getUint16', 'setUint16');
|
|
41
39
|
|
|
42
|
-
public static readonly
|
|
40
|
+
public static readonly Int32 = new NumberFieldType(4, 'getInt32', 'setInt32');
|
|
43
41
|
|
|
44
|
-
public static readonly
|
|
42
|
+
public static readonly Uint32 = new NumberFieldType(4, 'getUint32', 'setUint32');
|
|
45
43
|
}
|
|
46
44
|
|
|
47
45
|
export class NumberFieldDefinition<
|
|
48
46
|
TType extends NumberFieldType = NumberFieldType,
|
|
49
|
-
TTypeScriptType = TType[
|
|
47
|
+
TTypeScriptType = TType["TTypeScriptType"],
|
|
50
48
|
> extends StructFieldDefinition<
|
|
51
49
|
void,
|
|
52
50
|
TTypeScriptType
|
|
@@ -85,16 +83,19 @@ export class NumberFieldDefinition<
|
|
|
85
83
|
stream: StructDeserializeStream | StructAsyncDeserializeStream,
|
|
86
84
|
struct: StructValue,
|
|
87
85
|
): ValueOrPromise<NumberFieldValue<this>> {
|
|
88
|
-
return Syncbird
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
86
|
+
return Syncbird
|
|
87
|
+
.try(() => {
|
|
88
|
+
return stream.read(this.getSize());
|
|
89
|
+
})
|
|
90
|
+
.then(array => {
|
|
91
|
+
const view = new DataView(array.buffer, array.byteOffset, array.byteLength);
|
|
92
|
+
const value = view[this.type.dataViewGetter](
|
|
93
|
+
0,
|
|
94
|
+
options.littleEndian
|
|
95
|
+
);
|
|
96
|
+
return this.create(options, struct, value as any);
|
|
97
|
+
})
|
|
98
|
+
.valueOrPromise();
|
|
98
99
|
}
|
|
99
100
|
}
|
|
100
101
|
|
package/src/utils.ts
CHANGED
|
@@ -48,15 +48,23 @@ export function placeholder<T>(): T {
|
|
|
48
48
|
return undefined as unknown as T;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
//
|
|
51
|
+
// This library can't use `@types/node` or `lib: dom`
|
|
52
|
+
// because they will pollute the global scope
|
|
53
|
+
// So `TextEncoder` and `TextDecoder` are not available
|
|
54
|
+
|
|
55
|
+
// Node.js 8.3 ships `TextEncoder` and `TextDecoder` in `util` module.
|
|
56
|
+
// But using top level await to load them requires Node.js 14.1.
|
|
57
|
+
// So there is no point to do that. Let's just assume they exists in global.
|
|
58
|
+
|
|
59
|
+
// @ts-expect-error
|
|
52
60
|
const Utf8Encoder = new TextEncoder();
|
|
53
|
-
// @ts-expect-error
|
|
61
|
+
// @ts-expect-error
|
|
54
62
|
const Utf8Decoder = new TextDecoder();
|
|
55
63
|
|
|
56
|
-
export function encodeUtf8(input: string):
|
|
57
|
-
return Utf8Encoder.encode(input)
|
|
64
|
+
export function encodeUtf8(input: string): Uint8Array {
|
|
65
|
+
return Utf8Encoder.encode(input);
|
|
58
66
|
}
|
|
59
67
|
|
|
60
|
-
export function decodeUtf8(buffer:
|
|
68
|
+
export function decodeUtf8(buffer: Uint8Array): string {
|
|
61
69
|
return Utf8Decoder.decode(buffer);
|
|
62
70
|
}
|
package/dts/basic/context.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export interface StructDeserializeStream {
|
|
2
|
-
/**
|
|
3
|
-
* Read data from the underlying data source.
|
|
4
|
-
*
|
|
5
|
-
* Stream must return exactly `length` bytes or data. If that's not possible
|
|
6
|
-
* (due to end of file or other error condition), it must throw an error.
|
|
7
|
-
*/
|
|
8
|
-
read(length: number): ArrayBuffer;
|
|
9
|
-
}
|
|
10
|
-
export interface StructAsyncDeserializeStream {
|
|
11
|
-
/**
|
|
12
|
-
* Read data from the underlying data source.
|
|
13
|
-
*
|
|
14
|
-
* Context must return exactly `length` bytes or data. If that's not possible
|
|
15
|
-
* (due to end of file or other error condition), it must throw an error.
|
|
16
|
-
*/
|
|
17
|
-
read(length: number): Promise<ArrayBuffer>;
|
|
18
|
-
}
|
|
19
|
-
export interface StructOptions {
|
|
20
|
-
/**
|
|
21
|
-
* Whether all multi-byte fields in this struct are little-endian encoded.
|
|
22
|
-
*
|
|
23
|
-
* Default to `false`
|
|
24
|
-
*/
|
|
25
|
-
littleEndian: boolean;
|
|
26
|
-
}
|
|
27
|
-
export declare const StructDefaultOptions: Readonly<StructOptions>;
|
|
28
|
-
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/basic/context.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACpC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;CACrC;AAED,MAAM,WAAW,4BAA4B;IACzC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,aAAa,CAExD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/basic/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACtG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;;;;;;;;;;GAcG;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,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,GACd,gBAAgB,CAAC,IAAI,CAAC;IAEzB;;OAEG;aACa,WAAW,CACvB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EAChC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,WAAW,GACpB,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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-value.d.ts","sourceRoot":"","sources":["../../src/basic/field-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;;;GAKG;AACH,8BAAsB,gBAAgB,CAClC,WAAW,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAE/F,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,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,CACrB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,GACf,IAAI;CACV"}
|
package/dts/basic/index.d.ts
DELETED
package/dts/basic/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/basic/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"struct-value.d.ts","sourceRoot":"","sources":["../../src/basic/struct-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD;;GAEG;AACH,qBAAa,WAAW;IAGpB;;OAEG;IACH,SAAgB,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAM;IAEzD;;;;;OAKG;IACI,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAW3D;;;;OAIG;IACI,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,gBAAgB;CAGjD"}
|
package/dts/index.d.ts
DELETED
package/dts/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC;AAC7C,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
package/dts/struct.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,qBAAqB,EAAoB,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7I,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,yCAAyC,EAAE,sCAAsC,EAAE,WAAW,EAAyB,eAAe,EAAE,eAAe,EAAE,0BAA0B,EAAE,4CAA4C,EAAE,yCAAyC,EAAE,MAAM,SAAS,CAAC;AACvV,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAkB,MAAM,SAAS,CAAC;AAExE,MAAM,WAAW,UAAU,CAAC,MAAM;IAC9B,WAAW,CAAC,MAAM,EAAE,uBAAuB,GAAG,4BAA4B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChG;AAED;;GAEG;AACH,oBAAY,eAAe,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,CAAC,IACjD,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAE1C;;GAEG;AACH,aAAK,kBAAkB,CACnB,OAAO,SAAS,MAAM,EACtB,YAAY,SAAS,WAAW,EAChC,MAAM,SAAS,MAAM,EACrB,iBAAiB,EACjB,UAAU,SAAS,WAAW,EAC9B,WAAW,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAExD,QAAQ,CAAC,MAAM,CAGX,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAE7D,YAAY,GAAG,WAAW,CAAC,cAAc,CAAC,EAC1C,MAAM,EACN,iBAAiB,CACpB,CAAC,CAAC;AAmEP;;GAEG;AACH,UAAU,2CAA2C,CACjD,OAAO,SAAS,MAAM,EACtB,YAAY,SAAS,WAAW,EAChC,MAAM,SAAS,MAAM,EACrB,iBAAiB,EACjB,KAAK,SAAS,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC;IAEhD,CACI,KAAK,SAAS,WAAW,EACzB,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,EAE1C,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,sCAAsC,EAC/C,cAAc,CAAC,EAAE,eAAe,GACjC,kBAAkB,CACjB,OAAO,EACP,YAAY,EACZ,MAAM,EACN,iBAAiB,EACjB,KAAK,EACL,yCAAyC,CACrC,KAAK,EACL,sCAAsC,CACzC,CACJ,CAAC;IAEF,CACI,KAAK,SAAS,WAAW,EACzB,YAAY,SAAS,WAAW,CAAC,OAAO,CAAC,EACzC,QAAQ,SAAS,yCAAyC,CAAC,OAAO,EAAE,YAAY,CAAC,EACjF,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,EAE1C,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,QAAQ,EACjB,cAAc,CAAC,EAAE,eAAe,GACjC,kBAAkB,CACjB,OAAO,EACP,YAAY,EACZ,MAAM,EACN,iBAAiB,EACjB,KAAK,EACL,4CAA4C,CACxC,KAAK,EACL,QAAQ,CACX,CACJ,CAAC;CACL;AAED,oBAAY,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,IACzD,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,iBAAiB,CAAC;AAE1D,oBAAY,wBAAwB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAAE,iBAAiB,IACjG,iBAAiB,SAAS,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAAC;AAEzF,qBAAa,MAAM,CACf,OAAO,SAAS,MAAM,GAAG,EAAE,EAC3B,YAAY,SAAS,WAAW,GAAG,KAAK,EACxC,MAAM,SAAS,MAAM,GAAG,EAAE,EAC1B,iBAAiB,GAAG,SAAS,CAC3B,YAAW,UAAU,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACrF,SAAgB,OAAO,EAAG,OAAO,CAAC;IAElC,SAAgB,YAAY,EAAG,YAAY,CAAC;IAE5C,SAAgB,MAAM,EAAG,MAAM,CAAC;IAEhC,SAAgB,KAAK,EAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAE9D,SAAgB,kBAAkB,EAAG,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAElG,SAAgB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEjD,OAAO,CAAC,KAAK,CAAK;IAClB;;OAEG;IACH,IAAW,IAAI,WAAyB;IAExC,OAAO,CAAC,OAAO,CAA+E;IAE9F,OAAO,CAAC,MAAM,CAA6B;IAE3C,OAAO,CAAC,iBAAiB,CAAC,CAAmC;gBAE1C,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAI7D;;OAEG;IACI,KAAK,CACR,KAAK,SAAS,WAAW,EACzB,WAAW,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAExD,IAAI,EAAE,KAAK,EACX,UAAU,EAAE,WAAW,GACxB,kBAAkB,CACjB,OAAO,EACP,YAAY,EACZ,MAAM,EACN,iBAAiB,EACjB,KAAK,EACL,WAAW,CACd;IAgBD;;OAEG;IACI,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACnD,KAAK,EAAE,MAAM,GACd,MAAM,CACL,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,EAC3B,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,EACrC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,EACzB,iBAAiB,CACpB;IASD,OAAO,CAAC,MAAM;IAed;;OAEG;IACI,IAAI,CACP,KAAK,SAAS,WAAW,EACzB,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,EAEtE,IAAI,EAAE,KAAK,EACX,eAAe,CAAC,EAAE,eAAe;IASrC;;OAEG;IACI,KAAK,CACR,KAAK,SAAS,WAAW,EACzB,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,EAEtE,IAAI,EAAE,KAAK,EACX,eAAe,CAAC,EAAE,eAAe;IASrC;;OAEG;IACI,KAAK,CACR,KAAK,SAAS,WAAW,EACzB,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAEvE,IAAI,EAAE,KAAK,EACX,eAAe,CAAC,EAAE,eAAe;IASrC;;OAEG;IACI,MAAM,CACT,KAAK,SAAS,WAAW,EACzB,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAEvE,IAAI,EAAE,KAAK,EACX,eAAe,CAAC,EAAE,eAAe;IASrC;;OAEG;IACI,KAAK,CACR,KAAK,SAAS,WAAW,EACzB,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,EAEtE,IAAI,EAAE,KAAK,EACX,eAAe,CAAC,EAAE,eAAe;IASrC;;OAEG;IACI,MAAM,CACT,KAAK,SAAS,WAAW,EACzB,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAEvE,IAAI,EAAE,KAAK,EACX,cAAc,CAAC,EAAE,eAAe;IASpC;;;;OAIG;IACI,KAAK,CACR,KAAK,SAAS,WAAW,EACzB,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,EAEtE,IAAI,EAAE,KAAK,EACX,eAAe,CAAC,EAAE,eAAe;IASrC;;;;OAIG;IACI,MAAM,CACT,KAAK,SAAS,WAAW,EACzB,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAEvE,IAAI,EAAE,KAAK,EACX,eAAe,CAAC,EAAE,eAAe;IASrC,OAAO,CAAC,eAAe,CAqBjB;IAEC,WAAW,EAAE,2CAA2C,CAC3D,OAAO,EACP,YAAY,EACZ,MAAM,EACN,iBAAiB,EACjB,oBAAoB,CACvB,CAKK;IAEC,iBAAiB,EAAE,2CAA2C,CACjE,OAAO,EACP,YAAY,EACZ,MAAM,EACN,iBAAiB,EACjB,0BAA0B,CAC7B,CAKK;IAEC,MAAM,EAAE,2CAA2C,CACtD,OAAO,EACP,YAAY,EACZ,MAAM,EACN,iBAAiB,EACjB,eAAe,CAClB,CAKK;IAEN;;;;;;;;;OASG;IACI,KAAK,CAAC,CAAC,SAAS,MAAM,CAEzB,OAAO,CACH,MAAM,CAAC,EACP,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,CAClC,EACD,KAAK,CACR,EACG,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAC9D,MAAM,CACL,OAAO,EACP,YAAY,EACZ,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,EACpB,iBAAiB,CACpB;IAKD;;;;;OAKG;IACI,eAAe,CAClB,QAAQ,EAAE,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,GACjD,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC;IAC/C;;;;;OAKG;IACI,eAAe,CAClB,QAAQ,CAAC,EAAE,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,GACjD,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC;IACnD;;;;;OAKG;IACI,eAAe,CAAC,cAAc,EACjC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,OAAO,EAAE,cAAc,CAAC,GAC3D,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC;IAQjD,WAAW,CACd,MAAM,EAAE,uBAAuB,GAChC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC;IACxD,WAAW,CACd,MAAM,EAAE,4BAA4B,GACrC,OAAO,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAqCjE,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,GAAG,WAAW;CA4B7E"}
|
package/dts/syncbird.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import Bluebird from 'bluebird';
|
|
2
|
-
declare type Resolvable<R> = R | PromiseLike<R>;
|
|
3
|
-
export interface Syncbird<R> extends Bluebird<R> {
|
|
4
|
-
valueOrPromise(): R | PromiseLike<R>;
|
|
5
|
-
then<U>(onFulfill?: (value: R) => Resolvable<U>, onReject?: (error: any) => Resolvable<U>): Syncbird<U>;
|
|
6
|
-
then<TResult1 = R, TResult2 = never>(onfulfilled?: ((value: R) => Resolvable<TResult1>) | null, onrejected?: ((reason: any) => Resolvable<TResult2>) | null): Syncbird<TResult1 | TResult2>;
|
|
7
|
-
}
|
|
8
|
-
interface SyncbirdStatic {
|
|
9
|
-
/**
|
|
10
|
-
* Create a promise that is resolved with the given `value`. If `value` is a thenable or promise, the returned promise will assume its state.
|
|
11
|
-
*/
|
|
12
|
-
resolve(): Syncbird<void>;
|
|
13
|
-
resolve<R>(value: Resolvable<R>): Syncbird<R>;
|
|
14
|
-
try<R>(fn: () => Resolvable<R>): Syncbird<R>;
|
|
15
|
-
attempt<R>(fn: () => Resolvable<R>): Syncbird<R>;
|
|
16
|
-
new <R>(callback: (resolve: (thenableOrResult?: Resolvable<R>) => void, reject: (error?: any) => void, onCancel?: (callback: () => void) => void) => void): Syncbird<R>;
|
|
17
|
-
}
|
|
18
|
-
export declare const Syncbird: SyncbirdStatic;
|
|
19
|
-
export {};
|
|
20
|
-
//# sourceMappingURL=syncbird.d.ts.map
|
package/dts/syncbird.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"syncbird.d.ts","sourceRoot":"","sources":["../src/syncbird.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,aAAK,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAExC,MAAM,WAAW,QAAQ,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IAC5C,cAAc,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAErC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxG,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAC/B,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,EACzD,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,GAC5D,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;CACpC;AAED,UAAU,cAAc;IACpB;;OAEG;IACH,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE9C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjD,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;CAC3K;AAED,eAAO,MAAM,QAAQ,EAAE,cAAoD,CAAC"}
|