@cloudpss/ubjson 0.5.37 → 0.5.38
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/dist/base/decoder.d.ts +12 -0
- package/dist/base/decoder.js +26 -0
- package/dist/base/decoder.js.map +1 -0
- package/dist/{common → base}/encoder.d.ts +2 -6
- package/dist/{common → base}/encoder.js +71 -121
- package/dist/base/encoder.js.map +1 -0
- package/dist/decoder.d.ts +1 -2
- package/dist/decoder.js +1 -1
- package/dist/decoder.js.map +1 -1
- package/dist/encoder.d.ts +1 -1
- package/dist/encoder.js +11 -11
- package/dist/encoder.js.map +1 -1
- package/dist/{common → helper}/constants.js.map +1 -1
- package/dist/helper/decode.d.ts +49 -0
- package/dist/helper/decode.js +344 -0
- package/dist/helper/decode.js.map +1 -0
- package/dist/helper/encode.d.ts +20 -0
- package/dist/helper/encode.js +84 -0
- package/dist/helper/encode.js.map +1 -0
- package/dist/{common → helper}/errors.d.ts +4 -0
- package/dist/{common → helper}/errors.js +10 -2
- package/dist/helper/errors.js.map +1 -0
- package/dist/{common → helper}/string-decoder.js +1 -1
- package/dist/{common → helper}/string-decoder.js.map +1 -1
- package/dist/{common → helper}/string-encoder.js.map +1 -1
- package/dist/{utils.d.ts → helper/utils.d.ts} +0 -4
- package/dist/{utils.js → helper/utils.js} +0 -6
- package/dist/helper/utils.js.map +1 -0
- package/dist/index.d.ts +3 -5
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/rxjs/decoder.js +1 -1
- package/dist/rxjs/decoder.js.map +1 -1
- package/dist/rxjs/index.d.ts +1 -1
- package/dist/rxjs/index.js +1 -1
- package/dist/rxjs/index.js.map +1 -1
- package/dist/stream/index.d.ts +2 -2
- package/dist/stream/index.js +2 -2
- package/dist/stream/index.js.map +1 -1
- package/dist/stream-helper/decoder.d.ts +2 -3
- package/dist/stream-helper/decoder.js +3 -6
- package/dist/stream-helper/decoder.js.map +1 -1
- package/dist/stream-helper/encoder.d.ts +1 -1
- package/dist/stream-helper/encoder.js +15 -15
- package/dist/stream-helper/encoder.js.map +1 -1
- package/package.json +4 -4
- package/src/base/decoder.ts +27 -0
- package/src/{common → base}/encoder.ts +72 -116
- package/src/decoder.ts +1 -2
- package/src/encoder.ts +11 -11
- package/src/helper/decode.ts +362 -0
- package/src/helper/encode.ts +89 -0
- package/src/{common → helper}/errors.ts +12 -2
- package/src/{common → helper}/string-decoder.ts +1 -1
- package/src/{utils.ts → helper/utils.ts} +0 -7
- package/src/index.ts +6 -8
- package/src/rxjs/decoder.ts +1 -1
- package/src/rxjs/index.ts +1 -1
- package/src/stream/index.ts +3 -3
- package/src/stream-helper/decoder.ts +3 -6
- package/src/stream-helper/encoder.ts +16 -16
- package/tests/.utils.js +6 -4
- package/tests/decode.js +0 -18
- package/tests/e2e/no-encode-into.js +1 -1
- package/tests/encode.js +1 -1
- package/tests/huge-string.js +1 -0
- package/tests/rxjs/decode.js +14 -13
- package/tests/rxjs/encode.js +13 -12
- package/tests/stream/decode.js +15 -13
- package/tests/stream/encode.js +9 -8
- package/tests/stream/many.js +2 -1
- package/tests/string-encoding.js +4 -6
- package/benchmark-small.js +0 -81
- package/benchmark-string-decode.js +0 -41
- package/benchmark-string-encode.js +0 -32
- package/benchmark-string-size-caculation.js +0 -50
- package/benchmark.js +0 -50
- package/dist/common/decoder.d.ts +0 -45
- package/dist/common/decoder.js +0 -348
- package/dist/common/decoder.js.map +0 -1
- package/dist/common/encoder.js.map +0 -1
- package/dist/common/errors.js.map +0 -1
- package/dist/utils.js.map +0 -1
- package/src/common/decoder.ts +0 -356
- /package/dist/{common → helper}/constants.d.ts +0 -0
- /package/dist/{common → helper}/constants.js +0 -0
- /package/dist/{common → helper}/string-decoder.d.ts +0 -0
- /package/dist/{common → helper}/string-encoder.d.ts +0 -0
- /package/dist/{common → helper}/string-encoder.js +0 -0
- /package/src/{common → helper}/constants.ts +0 -0
- /package/src/{common → helper}/string-encoder.ts +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** decoder */
|
|
2
|
+
export declare class DecoderBase {
|
|
3
|
+
constructor(data: BinaryData);
|
|
4
|
+
protected readonly view: DataView;
|
|
5
|
+
protected readonly data: Uint8Array;
|
|
6
|
+
/** 当前读指针位置 */
|
|
7
|
+
protected offset: number;
|
|
8
|
+
/** EOF */
|
|
9
|
+
protected eof(): never;
|
|
10
|
+
/** 解码 */
|
|
11
|
+
decode(): unknown;
|
|
12
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { readData, readMarkerOrUndefined } from '../helper/decode.js';
|
|
2
|
+
import { toUint8Array } from '../helper/utils.js';
|
|
3
|
+
import { UnexpectedEofError } from '../helper/errors.js';
|
|
4
|
+
/** decoder */
|
|
5
|
+
export class DecoderBase {
|
|
6
|
+
constructor(data) {
|
|
7
|
+
this.data = toUint8Array(data);
|
|
8
|
+
this.view = new DataView(this.data.buffer, this.data.byteOffset, this.data.byteLength);
|
|
9
|
+
}
|
|
10
|
+
view;
|
|
11
|
+
data;
|
|
12
|
+
/** 当前读指针位置 */
|
|
13
|
+
offset = 0;
|
|
14
|
+
/** EOF */
|
|
15
|
+
eof() {
|
|
16
|
+
throw new UnexpectedEofError();
|
|
17
|
+
}
|
|
18
|
+
/** 解码 */
|
|
19
|
+
decode() {
|
|
20
|
+
const marker = readMarkerOrUndefined(this);
|
|
21
|
+
if (marker === undefined)
|
|
22
|
+
return undefined;
|
|
23
|
+
return readData(this, marker);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=decoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/base/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,QAAQ,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,cAAc;AACd,MAAM,OAAO,WAAW;IACpB,YAAY,IAAgB;QACxB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3F,CAAC;IAEkB,IAAI,CAAW;IACf,IAAI,CAAa;IACpC,cAAc;IACJ,MAAM,GAAG,CAAC,CAAC;IACrB,UAAU;IACA,GAAG;QACT,MAAM,IAAI,kBAAkB,EAAE,CAAC;IACnC,CAAC;IAED,SAAS;IACT,MAAM;QACF,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAA2B,CAAC,CAAC;QAClE,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC3C,OAAO,QAAQ,CAAC,IAA2B,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;CACJ"}
|
|
@@ -3,14 +3,14 @@ export declare abstract class EncoderBase {
|
|
|
3
3
|
/** 当前写指针位置 */
|
|
4
4
|
protected length: number;
|
|
5
5
|
/** 数据 */
|
|
6
|
-
protected
|
|
6
|
+
protected data: Uint8Array;
|
|
7
7
|
/** buffer 的 DataView */
|
|
8
8
|
protected view: DataView;
|
|
9
9
|
/**
|
|
10
10
|
* 确保 buffer 还有 capacity 的空闲空间
|
|
11
11
|
*/
|
|
12
12
|
protected abstract ensureCapacity(capacity: number): void;
|
|
13
|
-
/** 编码至 ubjson */
|
|
13
|
+
/** 编码至 ubjson,对于 `undefined` 写入 NOOP */
|
|
14
14
|
protected writeValue(value: unknown): void;
|
|
15
15
|
/** 写入一个对象 */
|
|
16
16
|
private write;
|
|
@@ -20,8 +20,4 @@ export declare abstract class EncoderBase {
|
|
|
20
20
|
protected writeLargeStringData(value: string): void;
|
|
21
21
|
/** 写入数组 */
|
|
22
22
|
protected writeLargeTypedArrayData(value: ArrayBufferView): void;
|
|
23
|
-
/**
|
|
24
|
-
* 写入整形数字,选取合适的大小,需提前分配空间
|
|
25
|
-
*/
|
|
26
|
-
private setLength;
|
|
27
23
|
}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { writeLength, writeTypedArrayHeader } from '../helper/encode.js';
|
|
2
|
+
import { unsupportedType, unsupportedView } from '../helper/errors.js';
|
|
3
|
+
import { stringByteLength, encodeInto } from '../helper/string-encoder.js';
|
|
3
4
|
const LARGE_DATA_LENGTH = 65536;
|
|
4
5
|
/** 编码至 ubjson */
|
|
5
6
|
export class EncoderBase {
|
|
6
7
|
/** 当前写指针位置 */
|
|
7
8
|
length = 0;
|
|
8
9
|
/** 数据 */
|
|
9
|
-
|
|
10
|
+
data;
|
|
10
11
|
/** buffer 的 DataView */
|
|
11
12
|
view;
|
|
12
|
-
/** 编码至 ubjson */
|
|
13
|
+
/** 编码至 ubjson,对于 `undefined` 写入 NOOP */
|
|
13
14
|
writeValue(value) {
|
|
14
15
|
if (value === undefined) {
|
|
15
16
|
this.ensureCapacity(1);
|
|
16
|
-
this.
|
|
17
|
+
this.data[this.length++] = 78 /* constants.NO_OP */;
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
20
|
this.write(value);
|
|
@@ -22,15 +23,15 @@ export class EncoderBase {
|
|
|
22
23
|
write(value) {
|
|
23
24
|
switch (typeof value) {
|
|
24
25
|
case 'string':
|
|
25
|
-
if (value.length === 1 && value.charCodeAt(0) <
|
|
26
|
+
if (value.length === 1 && value.charCodeAt(0) < 0x80) {
|
|
26
27
|
// 1 byte ascii char
|
|
27
28
|
this.ensureCapacity(2);
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
29
|
+
this.data[this.length++] = 67 /* constants.CHAR */;
|
|
30
|
+
this.data[this.length++] = value.charCodeAt(0);
|
|
30
31
|
}
|
|
31
32
|
else {
|
|
32
33
|
this.ensureCapacity(2);
|
|
33
|
-
this.
|
|
34
|
+
this.data[this.length++] = 83 /* constants.STRING */;
|
|
34
35
|
this.writeStringData(value);
|
|
35
36
|
}
|
|
36
37
|
return;
|
|
@@ -39,23 +40,23 @@ export class EncoderBase {
|
|
|
39
40
|
if ((value | 0) === value) {
|
|
40
41
|
if (value >= 0 && value <= 255) {
|
|
41
42
|
this.ensureCapacity(2);
|
|
42
|
-
this.
|
|
43
|
-
this.
|
|
43
|
+
this.data[this.length++] = 85 /* constants.UINT8 */;
|
|
44
|
+
this.data[this.length++] = value;
|
|
44
45
|
}
|
|
45
46
|
else if (value >= -128 && value <= 127) {
|
|
46
47
|
this.ensureCapacity(2);
|
|
47
|
-
this.
|
|
48
|
-
this.
|
|
48
|
+
this.data[this.length++] = 105 /* constants.INT8 */;
|
|
49
|
+
this.data[this.length++] = value;
|
|
49
50
|
}
|
|
50
51
|
else if (value >= -32768 && value <= 32767) {
|
|
51
52
|
this.ensureCapacity(3);
|
|
52
|
-
this.
|
|
53
|
-
this.
|
|
54
|
-
this.
|
|
53
|
+
this.data[this.length++] = 73 /* constants.INT16 */;
|
|
54
|
+
this.data[this.length++] = value >> 8;
|
|
55
|
+
this.data[this.length++] = value & 0xff;
|
|
55
56
|
}
|
|
56
57
|
else {
|
|
57
58
|
this.ensureCapacity(5);
|
|
58
|
-
this.
|
|
59
|
+
this.data[this.length++] = 108 /* constants.INT32 */;
|
|
59
60
|
this.view.setInt32(this.length, value);
|
|
60
61
|
this.length += 4;
|
|
61
62
|
}
|
|
@@ -63,13 +64,13 @@ export class EncoderBase {
|
|
|
63
64
|
else if (Number.isNaN(value) || Math.fround(value) === value) {
|
|
64
65
|
// 如果不会损失精度,使用 32 位浮点
|
|
65
66
|
this.ensureCapacity(5);
|
|
66
|
-
this.
|
|
67
|
+
this.data[this.length++] = 100 /* constants.FLOAT32 */;
|
|
67
68
|
this.view.setFloat32(this.length, value);
|
|
68
69
|
this.length += 4;
|
|
69
70
|
}
|
|
70
71
|
else {
|
|
71
72
|
this.ensureCapacity(9);
|
|
72
|
-
this.
|
|
73
|
+
this.data[this.length++] = 68 /* constants.FLOAT64 */;
|
|
73
74
|
this.view.setFloat64(this.length, value);
|
|
74
75
|
this.length += 8;
|
|
75
76
|
}
|
|
@@ -77,26 +78,26 @@ export class EncoderBase {
|
|
|
77
78
|
case 'object': {
|
|
78
79
|
if (value === null) {
|
|
79
80
|
this.ensureCapacity(1);
|
|
80
|
-
this.
|
|
81
|
+
this.data[this.length++] = 90 /* constants.NULL */;
|
|
81
82
|
return;
|
|
82
83
|
}
|
|
83
84
|
if (Array.isArray(value)) {
|
|
84
85
|
this.ensureCapacity(1);
|
|
85
|
-
this.
|
|
86
|
+
this.data[this.length++] = 91 /* constants.ARRAY */;
|
|
86
87
|
const size = value.length;
|
|
87
88
|
for (let index = 0; index < size; index++) {
|
|
88
89
|
const element = value[index];
|
|
89
90
|
// 在数组中 undefined 和 function 也被视作 null 进行序列化
|
|
90
91
|
if (element == null || typeof element == 'function') {
|
|
91
92
|
this.ensureCapacity(1);
|
|
92
|
-
this.
|
|
93
|
+
this.data[this.length++] = 90 /* constants.NULL */;
|
|
93
94
|
}
|
|
94
95
|
else {
|
|
95
96
|
this.write(element);
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
99
|
this.ensureCapacity(1);
|
|
99
|
-
this.
|
|
100
|
+
this.data[this.length++] = 93 /* constants.ARRAY_END */;
|
|
100
101
|
return;
|
|
101
102
|
}
|
|
102
103
|
if (!ArrayBuffer.isView(value)) {
|
|
@@ -106,7 +107,7 @@ export class EncoderBase {
|
|
|
106
107
|
return;
|
|
107
108
|
}
|
|
108
109
|
this.ensureCapacity(1);
|
|
109
|
-
this.
|
|
110
|
+
this.data[this.length++] = 123 /* constants.OBJECT */;
|
|
110
111
|
// 生成稳定的结果以便 hash 计算
|
|
111
112
|
const keys = Object.keys(value).sort();
|
|
112
113
|
const size = keys.length;
|
|
@@ -119,53 +120,25 @@ export class EncoderBase {
|
|
|
119
120
|
this.write(element);
|
|
120
121
|
}
|
|
121
122
|
this.ensureCapacity(1);
|
|
122
|
-
this.
|
|
123
|
+
this.data[this.length++] = 125 /* constants.OBJECT_END */;
|
|
123
124
|
return;
|
|
124
125
|
}
|
|
125
126
|
if (value.byteLength > LARGE_DATA_LENGTH) {
|
|
126
127
|
// ARRAY(1) + TYPE_MARKER(1) + TYPE(1) + COUNT_MARKER(1) + COUNT(5)
|
|
127
|
-
this
|
|
128
|
-
this.buffer[this.length++] = 91 /* constants.ARRAY */;
|
|
129
|
-
this.buffer[this.length++] = 36 /* constants.TYPE_MARKER */;
|
|
130
|
-
if (value instanceof Uint8Array) {
|
|
131
|
-
this.buffer[this.length++] = 85 /* constants.UINT8 */;
|
|
132
|
-
}
|
|
133
|
-
else if (value instanceof Int8Array) {
|
|
134
|
-
this.buffer[this.length++] = 105 /* constants.INT8 */;
|
|
135
|
-
}
|
|
136
|
-
else if (value instanceof Int16Array) {
|
|
137
|
-
this.buffer[this.length++] = 73 /* constants.INT16 */;
|
|
138
|
-
}
|
|
139
|
-
else if (value instanceof Int32Array) {
|
|
140
|
-
this.buffer[this.length++] = 108 /* constants.INT32 */;
|
|
141
|
-
}
|
|
142
|
-
else if (value instanceof Float32Array) {
|
|
143
|
-
this.buffer[this.length++] = 100 /* constants.FLOAT32 */;
|
|
144
|
-
}
|
|
145
|
-
else if (value instanceof Float64Array) {
|
|
146
|
-
this.buffer[this.length++] = 68 /* constants.FLOAT64 */;
|
|
147
|
-
}
|
|
148
|
-
else if (value instanceof BigInt64Array) {
|
|
149
|
-
this.buffer[this.length++] = 76 /* constants.INT64 */;
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
unsupportedView(value);
|
|
153
|
-
}
|
|
154
|
-
this.buffer[this.length++] = 35 /* constants.COUNT_MARKER */;
|
|
155
|
-
this.setLength(value.length);
|
|
128
|
+
writeTypedArrayHeader(this, value);
|
|
156
129
|
this.writeLargeTypedArrayData(value);
|
|
157
130
|
}
|
|
158
131
|
else {
|
|
159
132
|
// ARRAY(1) + TYPE_MARKER(1) + TYPE(1) + COUNT_MARKER(1) + COUNT(MAX5) + DATA
|
|
160
133
|
this.ensureCapacity(9 + value.byteLength);
|
|
161
|
-
this.
|
|
162
|
-
this.
|
|
134
|
+
this.data[this.length++] = 91 /* constants.ARRAY */;
|
|
135
|
+
this.data[this.length++] = 36 /* constants.TYPE_MARKER */;
|
|
163
136
|
if (value instanceof Uint8Array || value instanceof Int8Array) {
|
|
164
137
|
// fast path for typed arrays with `BYTES_PER_ELEMENT` of 1
|
|
165
|
-
this.
|
|
166
|
-
this.
|
|
167
|
-
this
|
|
168
|
-
this.
|
|
138
|
+
this.data[this.length++] = value instanceof Uint8Array ? 85 /* constants.UINT8 */ : 105 /* constants.INT8 */;
|
|
139
|
+
this.data[this.length++] = 35 /* constants.COUNT_MARKER */;
|
|
140
|
+
writeLength(this, value.length);
|
|
141
|
+
this.data.set(value, this.length);
|
|
169
142
|
this.length += value.byteLength;
|
|
170
143
|
return;
|
|
171
144
|
}
|
|
@@ -173,46 +146,46 @@ export class EncoderBase {
|
|
|
173
146
|
.length;
|
|
174
147
|
const elementSize = value
|
|
175
148
|
.BYTES_PER_ELEMENT;
|
|
176
|
-
if (value instanceof
|
|
177
|
-
this.
|
|
178
|
-
this.
|
|
179
|
-
this
|
|
149
|
+
if (value instanceof Float64Array) {
|
|
150
|
+
this.data[this.length++] = 68 /* constants.FLOAT64 */;
|
|
151
|
+
this.data[this.length++] = 35 /* constants.COUNT_MARKER */;
|
|
152
|
+
writeLength(this, arrayLength);
|
|
180
153
|
for (let i = 0; i < arrayLength; i++) {
|
|
181
|
-
this.view.
|
|
154
|
+
this.view.setFloat64(this.length, value[i]);
|
|
182
155
|
this.length += elementSize;
|
|
183
156
|
}
|
|
184
157
|
}
|
|
185
158
|
else if (value instanceof Int32Array) {
|
|
186
|
-
this.
|
|
187
|
-
this.
|
|
188
|
-
this
|
|
159
|
+
this.data[this.length++] = 108 /* constants.INT32 */;
|
|
160
|
+
this.data[this.length++] = 35 /* constants.COUNT_MARKER */;
|
|
161
|
+
writeLength(this, arrayLength);
|
|
189
162
|
for (let i = 0; i < arrayLength; i++) {
|
|
190
163
|
this.view.setInt32(this.length, value[i]);
|
|
191
164
|
this.length += elementSize;
|
|
192
165
|
}
|
|
193
166
|
}
|
|
194
|
-
else if (value instanceof
|
|
195
|
-
this.
|
|
196
|
-
this.
|
|
197
|
-
this
|
|
167
|
+
else if (value instanceof Int16Array) {
|
|
168
|
+
this.data[this.length++] = 73 /* constants.INT16 */;
|
|
169
|
+
this.data[this.length++] = 35 /* constants.COUNT_MARKER */;
|
|
170
|
+
writeLength(this, arrayLength);
|
|
198
171
|
for (let i = 0; i < arrayLength; i++) {
|
|
199
|
-
this.view.
|
|
172
|
+
this.view.setInt16(this.length, value[i]);
|
|
200
173
|
this.length += elementSize;
|
|
201
174
|
}
|
|
202
175
|
}
|
|
203
|
-
else if (value instanceof
|
|
204
|
-
this.
|
|
205
|
-
this.
|
|
206
|
-
this
|
|
176
|
+
else if (value instanceof Float32Array) {
|
|
177
|
+
this.data[this.length++] = 100 /* constants.FLOAT32 */;
|
|
178
|
+
this.data[this.length++] = 35 /* constants.COUNT_MARKER */;
|
|
179
|
+
writeLength(this, arrayLength);
|
|
207
180
|
for (let i = 0; i < arrayLength; i++) {
|
|
208
|
-
this.view.
|
|
181
|
+
this.view.setFloat32(this.length, value[i]);
|
|
209
182
|
this.length += elementSize;
|
|
210
183
|
}
|
|
211
184
|
}
|
|
212
185
|
else if (value instanceof BigInt64Array) {
|
|
213
|
-
this.
|
|
214
|
-
this.
|
|
215
|
-
this
|
|
186
|
+
this.data[this.length++] = 76 /* constants.INT64 */;
|
|
187
|
+
this.data[this.length++] = 35 /* constants.COUNT_MARKER */;
|
|
188
|
+
writeLength(this, arrayLength);
|
|
216
189
|
for (let i = 0; i < arrayLength; i++) {
|
|
217
190
|
this.view.setBigInt64(this.length, value[i]);
|
|
218
191
|
this.length += elementSize;
|
|
@@ -226,7 +199,7 @@ export class EncoderBase {
|
|
|
226
199
|
}
|
|
227
200
|
case 'boolean':
|
|
228
201
|
this.ensureCapacity(1);
|
|
229
|
-
this.
|
|
202
|
+
this.data[this.length++] = value ? 84 /* constants.TRUE */ : 70 /* constants.FALSE */;
|
|
230
203
|
return;
|
|
231
204
|
case 'bigint':
|
|
232
205
|
// int32 range
|
|
@@ -236,7 +209,7 @@ export class EncoderBase {
|
|
|
236
209
|
// int64 range
|
|
237
210
|
else if (value >= -9223372036854775808n && value <= 9223372036854775807n) {
|
|
238
211
|
this.ensureCapacity(9);
|
|
239
|
-
this.
|
|
212
|
+
this.data[this.length++] = 76 /* constants.INT64 */;
|
|
240
213
|
this.view.setBigInt64(this.length, value);
|
|
241
214
|
this.length += 8;
|
|
242
215
|
}
|
|
@@ -260,26 +233,26 @@ export class EncoderBase {
|
|
|
260
233
|
// 额外分配 3 字节,避免 encodeInto 无法写入最后一个字符
|
|
261
234
|
this.ensureCapacity(maxUsage + 5 + 3);
|
|
262
235
|
// 预估头部大小
|
|
263
|
-
const headerSize = strLength <
|
|
236
|
+
const headerSize = strLength < 0x80 ? 2 : strLength < 0x8000 ? 3 : 5;
|
|
264
237
|
const headerPos = this.length;
|
|
265
|
-
const bufLength = encodeInto(value, this.
|
|
266
|
-
if (bufLength <
|
|
267
|
-
this.
|
|
268
|
-
this.
|
|
238
|
+
const bufLength = encodeInto(value, this.data, this.length + headerSize);
|
|
239
|
+
if (bufLength < 0x80) {
|
|
240
|
+
this.data[this.length++] = 105 /* constants.INT8 */;
|
|
241
|
+
this.data[this.length++] = bufLength;
|
|
269
242
|
}
|
|
270
|
-
else if (bufLength <
|
|
243
|
+
else if (bufLength < 0x8000) {
|
|
271
244
|
if (headerSize < 3) {
|
|
272
|
-
this.
|
|
245
|
+
this.data.copyWithin(headerPos + 3, headerPos + headerSize, headerPos + headerSize + bufLength);
|
|
273
246
|
}
|
|
274
|
-
this.
|
|
275
|
-
this.
|
|
276
|
-
this.
|
|
247
|
+
this.data[this.length++] = 73 /* constants.INT16 */;
|
|
248
|
+
this.data[this.length++] = bufLength >> 8;
|
|
249
|
+
this.data[this.length++] = bufLength & 0xff;
|
|
277
250
|
}
|
|
278
251
|
else {
|
|
279
252
|
if (headerSize < 5) {
|
|
280
|
-
this.
|
|
253
|
+
this.data.copyWithin(headerPos + 5, headerPos + headerSize, headerPos + headerSize + bufLength);
|
|
281
254
|
}
|
|
282
|
-
this.
|
|
255
|
+
this.data[this.length++] = 108 /* constants.INT32 */;
|
|
283
256
|
this.view.setInt32(this.length, bufLength);
|
|
284
257
|
this.length += 4;
|
|
285
258
|
}
|
|
@@ -289,11 +262,11 @@ export class EncoderBase {
|
|
|
289
262
|
writeLargeStringData(value) {
|
|
290
263
|
const binLen = stringByteLength(value);
|
|
291
264
|
this.ensureCapacity(5);
|
|
292
|
-
this.
|
|
265
|
+
this.data[this.length++] = 108 /* constants.INT32 */;
|
|
293
266
|
this.view.setInt32(this.length, binLen);
|
|
294
267
|
this.length += 4;
|
|
295
268
|
this.ensureCapacity(binLen);
|
|
296
|
-
encodeInto(value, this.
|
|
269
|
+
encodeInto(value, this.data, this.length);
|
|
297
270
|
this.length += binLen;
|
|
298
271
|
}
|
|
299
272
|
/** 写入数组 */
|
|
@@ -301,7 +274,7 @@ export class EncoderBase {
|
|
|
301
274
|
this.ensureCapacity(value.byteLength);
|
|
302
275
|
if (value instanceof Uint8Array || value instanceof Int8Array) {
|
|
303
276
|
// fast path for typed arrays with `BYTES_PER_ELEMENT` of 1
|
|
304
|
-
this.
|
|
277
|
+
this.data.set(value, this.length);
|
|
305
278
|
this.length += value.byteLength;
|
|
306
279
|
return;
|
|
307
280
|
}
|
|
@@ -342,28 +315,5 @@ export class EncoderBase {
|
|
|
342
315
|
unsupportedView(value);
|
|
343
316
|
}
|
|
344
317
|
}
|
|
345
|
-
/**
|
|
346
|
-
* 写入整形数字,选取合适的大小,需提前分配空间
|
|
347
|
-
*/
|
|
348
|
-
setLength(value) {
|
|
349
|
-
// eslint-disable-next-line unicorn/prefer-math-trunc
|
|
350
|
-
value = value | 0;
|
|
351
|
-
if ((value & 0x7f) === value) {
|
|
352
|
-
this.buffer[this.length++] = 105 /* constants.INT8 */;
|
|
353
|
-
this.buffer[this.length++] = value;
|
|
354
|
-
return 1;
|
|
355
|
-
}
|
|
356
|
-
// 不使用 uint8 以保持兼容
|
|
357
|
-
if ((value & 0x7fff) === value) {
|
|
358
|
-
this.buffer[this.length++] = 73 /* constants.INT16 */;
|
|
359
|
-
this.buffer[this.length++] = value >> 8;
|
|
360
|
-
this.buffer[this.length++] = value & 0xff;
|
|
361
|
-
return 2;
|
|
362
|
-
}
|
|
363
|
-
this.buffer[this.length++] = 108 /* constants.INT32 */;
|
|
364
|
-
this.view.setInt32(this.length, value);
|
|
365
|
-
this.length += 4;
|
|
366
|
-
return 4;
|
|
367
|
-
}
|
|
368
318
|
}
|
|
369
319
|
//# sourceMappingURL=encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/base/encoder.ts"],"names":[],"mappings":"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"}
|
package/dist/decoder.d.ts
CHANGED
package/dist/decoder.js
CHANGED
package/dist/decoder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../src/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../src/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,gBAAgB;AAChB,MAAM,OAAO,OAAQ,SAAQ,WAAW;IACpC,WAAW;IACX,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC/C,CAAC;CACJ"}
|
package/dist/encoder.d.ts
CHANGED
package/dist/encoder.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EncoderBase } from './
|
|
1
|
+
import { EncoderBase } from './base/encoder.js';
|
|
2
2
|
const BLOCK_SIZE = 1024 * 16; // 16 KiB
|
|
3
3
|
const MAX_SIZE = 1024 * 1024 * 128; //128 MiB
|
|
4
4
|
/** 编码至 ubjson */
|
|
@@ -15,14 +15,14 @@ export class Encoder extends EncoderBase {
|
|
|
15
15
|
throw new Error('Buffer has exceed max size');
|
|
16
16
|
}
|
|
17
17
|
// 无需扩容
|
|
18
|
-
if (this.
|
|
18
|
+
if (this.data.byteLength >= this.length + capacity)
|
|
19
19
|
return;
|
|
20
20
|
// 提交目前的数据
|
|
21
|
-
if (this.
|
|
22
|
-
this.flushedBuffers.push(this.
|
|
21
|
+
if (this.data === this.pool) {
|
|
22
|
+
this.flushedBuffers.push(this.data.slice(0, this.length));
|
|
23
23
|
}
|
|
24
24
|
else {
|
|
25
|
-
this.flushedBuffers.push(this.
|
|
25
|
+
this.flushedBuffers.push(this.data.subarray(0, this.length));
|
|
26
26
|
}
|
|
27
27
|
// 重新分配缓冲区
|
|
28
28
|
if (capacity < BLOCK_SIZE)
|
|
@@ -33,20 +33,20 @@ export class Encoder extends EncoderBase {
|
|
|
33
33
|
allocUnsafe(size) {
|
|
34
34
|
if (size === this.pool.byteLength) {
|
|
35
35
|
// 从 pool 中获取
|
|
36
|
-
this.
|
|
37
|
-
this.view = new DataView(this.
|
|
36
|
+
this.data = this.pool;
|
|
37
|
+
this.view = new DataView(this.data.buffer);
|
|
38
38
|
this.length = 0;
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
|
-
this.
|
|
42
|
-
this.view = new DataView(this.
|
|
41
|
+
this.data = new Uint8Array(size);
|
|
42
|
+
this.view = new DataView(this.data.buffer);
|
|
43
43
|
this.length = 0;
|
|
44
44
|
}
|
|
45
45
|
/** 获取结果 */
|
|
46
46
|
getResult() {
|
|
47
47
|
if (this.flushedBuffers.length === 0) {
|
|
48
48
|
// 缓冲区为空,复制当前 buffer
|
|
49
|
-
return this.
|
|
49
|
+
return this.data.slice(0, this.length);
|
|
50
50
|
}
|
|
51
51
|
// 合并缓冲区
|
|
52
52
|
const flushedBuffers = this.flushedBuffers.splice(0);
|
|
@@ -57,7 +57,7 @@ export class Encoder extends EncoderBase {
|
|
|
57
57
|
result.set(buffer, offset);
|
|
58
58
|
offset += buffer.byteLength;
|
|
59
59
|
}
|
|
60
|
-
result.set(this.
|
|
60
|
+
result.set(this.data.subarray(0, this.length), offset);
|
|
61
61
|
return result;
|
|
62
62
|
}
|
|
63
63
|
/** 抛弃结果 */
|
package/dist/encoder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../src/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../src/encoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/helper/constants.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** 数据包装 */
|
|
2
|
+
export interface DecodeCursor {
|
|
3
|
+
/** 数据 */
|
|
4
|
+
readonly view: DataView;
|
|
5
|
+
/** 数据 */
|
|
6
|
+
readonly data: Uint8Array;
|
|
7
|
+
/** 当前读指针位置 */
|
|
8
|
+
offset: number;
|
|
9
|
+
/** 读取到末尾时调用 */
|
|
10
|
+
eof(): never;
|
|
11
|
+
}
|
|
12
|
+
/** 创建数据包装 */
|
|
13
|
+
export declare function DecodeCursor(data: BinaryData): DecodeCursor;
|
|
14
|
+
/**
|
|
15
|
+
* 读取第一个非 NOOP 的字节
|
|
16
|
+
* @returns 返回读取到的字节,如果读取到末尾则返回 undefined
|
|
17
|
+
*/
|
|
18
|
+
export declare function readMarkerOrUndefined(cursor: DecodeCursor): number | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* 读取第一个非 NOOP 的字节
|
|
21
|
+
*/
|
|
22
|
+
export declare function readMarker(cursor: DecodeCursor): number;
|
|
23
|
+
/** 读取一个大于 0 的整数 */
|
|
24
|
+
export declare function readLength(cursor: DecodeCursor): number;
|
|
25
|
+
/** readInt8Data */
|
|
26
|
+
export declare function readInt8Data(cursor: DecodeCursor): number;
|
|
27
|
+
/** readUint8Data */
|
|
28
|
+
export declare function readUint8Data(cursor: DecodeCursor): number;
|
|
29
|
+
/** readInt16Data */
|
|
30
|
+
export declare function readInt16Data(cursor: DecodeCursor): number;
|
|
31
|
+
/** readInt32Data */
|
|
32
|
+
export declare function readInt32Data(cursor: DecodeCursor): number;
|
|
33
|
+
/** readInt64Data */
|
|
34
|
+
export declare function readInt64Data(cursor: DecodeCursor): bigint;
|
|
35
|
+
/** readFloat32Data */
|
|
36
|
+
export declare function readFloat32Data(cursor: DecodeCursor): number;
|
|
37
|
+
/** readFloat64Data */
|
|
38
|
+
export declare function readFloat64Data(cursor: DecodeCursor): number;
|
|
39
|
+
/** 读取数据 */
|
|
40
|
+
export declare function read(cursor: DecodeCursor): unknown;
|
|
41
|
+
/** 根据标签读取后续数据 */
|
|
42
|
+
export declare function readData(cursor: DecodeCursor, marker: number): unknown;
|
|
43
|
+
/** readKey */
|
|
44
|
+
export declare function readKey(cursor: DecodeCursor): string;
|
|
45
|
+
/** 读取 Optimized Format 数据 */
|
|
46
|
+
export declare function readOptimizedFormatMarkers(cursor: DecodeCursor): {
|
|
47
|
+
type?: number;
|
|
48
|
+
count: number;
|
|
49
|
+
} | undefined;
|