@cloudpss/ubjson 0.5.36 → 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.
Files changed (91) hide show
  1. package/dist/base/decoder.d.ts +12 -0
  2. package/dist/base/decoder.js +26 -0
  3. package/dist/base/decoder.js.map +1 -0
  4. package/dist/{common → base}/encoder.d.ts +2 -6
  5. package/dist/{common → base}/encoder.js +71 -121
  6. package/dist/base/encoder.js.map +1 -0
  7. package/dist/decoder.d.ts +1 -2
  8. package/dist/decoder.js +1 -1
  9. package/dist/decoder.js.map +1 -1
  10. package/dist/encoder.d.ts +1 -1
  11. package/dist/encoder.js +11 -11
  12. package/dist/encoder.js.map +1 -1
  13. package/dist/{common → helper}/constants.js.map +1 -1
  14. package/dist/helper/decode.d.ts +49 -0
  15. package/dist/helper/decode.js +344 -0
  16. package/dist/helper/decode.js.map +1 -0
  17. package/dist/helper/encode.d.ts +20 -0
  18. package/dist/helper/encode.js +84 -0
  19. package/dist/helper/encode.js.map +1 -0
  20. package/dist/{common → helper}/errors.d.ts +4 -0
  21. package/dist/{common → helper}/errors.js +10 -2
  22. package/dist/helper/errors.js.map +1 -0
  23. package/dist/{common → helper}/string-decoder.js +1 -1
  24. package/dist/{common → helper}/string-decoder.js.map +1 -1
  25. package/dist/{common → helper}/string-encoder.js.map +1 -1
  26. package/dist/{utils.d.ts → helper/utils.d.ts} +0 -4
  27. package/dist/{utils.js → helper/utils.js} +0 -6
  28. package/dist/helper/utils.js.map +1 -0
  29. package/dist/index.d.ts +3 -5
  30. package/dist/index.js +5 -5
  31. package/dist/index.js.map +1 -1
  32. package/dist/rxjs/decoder.js +1 -1
  33. package/dist/rxjs/decoder.js.map +1 -1
  34. package/dist/rxjs/index.d.ts +1 -1
  35. package/dist/rxjs/index.js +1 -1
  36. package/dist/rxjs/index.js.map +1 -1
  37. package/dist/stream/index.d.ts +2 -2
  38. package/dist/stream/index.js +2 -2
  39. package/dist/stream/index.js.map +1 -1
  40. package/dist/stream-helper/decoder.d.ts +2 -3
  41. package/dist/stream-helper/decoder.js +3 -6
  42. package/dist/stream-helper/decoder.js.map +1 -1
  43. package/dist/stream-helper/encoder.d.ts +1 -1
  44. package/dist/stream-helper/encoder.js +15 -15
  45. package/dist/stream-helper/encoder.js.map +1 -1
  46. package/package.json +4 -4
  47. package/src/base/decoder.ts +27 -0
  48. package/src/{common → base}/encoder.ts +72 -116
  49. package/src/decoder.ts +1 -2
  50. package/src/encoder.ts +11 -11
  51. package/src/helper/decode.ts +362 -0
  52. package/src/helper/encode.ts +89 -0
  53. package/src/{common → helper}/errors.ts +12 -2
  54. package/src/{common → helper}/string-decoder.ts +1 -1
  55. package/src/{utils.ts → helper/utils.ts} +0 -7
  56. package/src/index.ts +6 -8
  57. package/src/rxjs/decoder.ts +1 -1
  58. package/src/rxjs/index.ts +1 -1
  59. package/src/stream/index.ts +3 -3
  60. package/src/stream-helper/decoder.ts +3 -6
  61. package/src/stream-helper/encoder.ts +16 -16
  62. package/tests/.utils.js +6 -4
  63. package/tests/decode.js +0 -18
  64. package/tests/e2e/no-encode-into.js +1 -1
  65. package/tests/encode.js +1 -1
  66. package/tests/huge-string.js +1 -0
  67. package/tests/rxjs/decode.js +14 -13
  68. package/tests/rxjs/encode.js +13 -12
  69. package/tests/stream/decode.js +15 -13
  70. package/tests/stream/encode.js +9 -8
  71. package/tests/stream/many.js +2 -1
  72. package/tests/string-encoding.js +4 -6
  73. package/benchmark-small.js +0 -81
  74. package/benchmark-string-decode.js +0 -41
  75. package/benchmark-string-encode.js +0 -32
  76. package/benchmark-string-size-caculation.js +0 -50
  77. package/benchmark.js +0 -50
  78. package/dist/common/decoder.d.ts +0 -45
  79. package/dist/common/decoder.js +0 -348
  80. package/dist/common/decoder.js.map +0 -1
  81. package/dist/common/encoder.js.map +0 -1
  82. package/dist/common/errors.js.map +0 -1
  83. package/dist/utils.js.map +0 -1
  84. package/src/common/decoder.ts +0 -356
  85. /package/dist/{common → helper}/constants.d.ts +0 -0
  86. /package/dist/{common → helper}/constants.js +0 -0
  87. /package/dist/{common → helper}/string-decoder.d.ts +0 -0
  88. /package/dist/{common → helper}/string-encoder.d.ts +0 -0
  89. /package/dist/{common → helper}/string-encoder.js +0 -0
  90. /package/src/{common → helper}/constants.ts +0 -0
  91. /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 buffer: Uint8Array;
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 { unsupportedType, unsupportedView } from './errors.js';
2
- import { stringByteLength, encodeInto } from './string-encoder.js';
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
- buffer;
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.buffer[this.length++] = 78 /* constants.NO_OP */;
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) < 128) {
26
+ if (value.length === 1 && value.charCodeAt(0) < 0x80) {
26
27
  // 1 byte ascii char
27
28
  this.ensureCapacity(2);
28
- this.buffer[this.length++] = 67 /* constants.CHAR */;
29
- this.buffer[this.length++] = value.charCodeAt(0);
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.buffer[this.length++] = 83 /* constants.STRING */;
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.buffer[this.length++] = 85 /* constants.UINT8 */;
43
- this.buffer[this.length++] = value;
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.buffer[this.length++] = 105 /* constants.INT8 */;
48
- this.buffer[this.length++] = value;
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.buffer[this.length++] = 73 /* constants.INT16 */;
53
- this.buffer[this.length++] = value >> 8;
54
- this.buffer[this.length++] = value & 0xff;
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.buffer[this.length++] = 108 /* constants.INT32 */;
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.buffer[this.length++] = 100 /* constants.FLOAT32 */;
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.buffer[this.length++] = 68 /* constants.FLOAT64 */;
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.buffer[this.length++] = 90 /* constants.NULL */;
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.buffer[this.length++] = 91 /* constants.ARRAY */;
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.buffer[this.length++] = 90 /* constants.NULL */;
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.buffer[this.length++] = 93 /* constants.ARRAY_END */;
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.buffer[this.length++] = 123 /* constants.OBJECT */;
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.buffer[this.length++] = 125 /* constants.OBJECT_END */;
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.ensureCapacity(9);
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.buffer[this.length++] = 91 /* constants.ARRAY */;
162
- this.buffer[this.length++] = 36 /* constants.TYPE_MARKER */;
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.buffer[this.length++] = value instanceof Uint8Array ? 85 /* constants.UINT8 */ : 105 /* constants.INT8 */;
166
- this.buffer[this.length++] = 35 /* constants.COUNT_MARKER */;
167
- this.setLength(value.length);
168
- this.buffer.set(value, this.length);
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 Int16Array) {
177
- this.buffer[this.length++] = 73 /* constants.INT16 */;
178
- this.buffer[this.length++] = 35 /* constants.COUNT_MARKER */;
179
- this.setLength(arrayLength);
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.setInt16(this.length, value[i]);
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.buffer[this.length++] = 108 /* constants.INT32 */;
187
- this.buffer[this.length++] = 35 /* constants.COUNT_MARKER */;
188
- this.setLength(arrayLength);
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 Float32Array) {
195
- this.buffer[this.length++] = 100 /* constants.FLOAT32 */;
196
- this.buffer[this.length++] = 35 /* constants.COUNT_MARKER */;
197
- this.setLength(arrayLength);
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.setFloat32(this.length, value[i]);
172
+ this.view.setInt16(this.length, value[i]);
200
173
  this.length += elementSize;
201
174
  }
202
175
  }
203
- else if (value instanceof Float64Array) {
204
- this.buffer[this.length++] = 68 /* constants.FLOAT64 */;
205
- this.buffer[this.length++] = 35 /* constants.COUNT_MARKER */;
206
- this.setLength(arrayLength);
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.setFloat64(this.length, value[i]);
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.buffer[this.length++] = 76 /* constants.INT64 */;
214
- this.buffer[this.length++] = 35 /* constants.COUNT_MARKER */;
215
- this.setLength(arrayLength);
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.buffer[this.length++] = value ? 84 /* constants.TRUE */ : 70 /* constants.FALSE */;
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.buffer[this.length++] = 76 /* constants.INT64 */;
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 < 128 ? 2 : strLength < 32768 ? 3 : 5;
236
+ const headerSize = strLength < 0x80 ? 2 : strLength < 0x8000 ? 3 : 5;
264
237
  const headerPos = this.length;
265
- const bufLength = encodeInto(value, this.buffer, this.length + headerSize);
266
- if (bufLength < 128) {
267
- this.buffer[this.length++] = 105 /* constants.INT8 */;
268
- this.buffer[this.length++] = bufLength;
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 < 32768) {
243
+ else if (bufLength < 0x8000) {
271
244
  if (headerSize < 3) {
272
- this.buffer.copyWithin(headerPos + 3, headerPos + headerSize, headerPos + headerSize + bufLength);
245
+ this.data.copyWithin(headerPos + 3, headerPos + headerSize, headerPos + headerSize + bufLength);
273
246
  }
274
- this.buffer[this.length++] = 73 /* constants.INT16 */;
275
- this.buffer[this.length++] = bufLength >> 8;
276
- this.buffer[this.length++] = bufLength & 0xff;
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.buffer.copyWithin(headerPos + 5, headerPos + headerSize, headerPos + headerSize + bufLength);
253
+ this.data.copyWithin(headerPos + 5, headerPos + headerSize, headerPos + headerSize + bufLength);
281
254
  }
282
- this.buffer[this.length++] = 108 /* constants.INT32 */;
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.buffer[this.length++] = 108 /* constants.INT32 */;
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.buffer, this.length);
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.buffer.set(value, this.length);
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
@@ -1,5 +1,4 @@
1
- import { DecoderBase } from './common/decoder.js';
2
- export type { DecoderOptions } from './common/decoder.js';
1
+ import { DecoderBase } from './base/decoder.js';
3
2
  /** 解码 UBJSON */
4
3
  export declare class Decoder extends DecoderBase {
5
4
  /** 读取完毕 */
package/dist/decoder.js CHANGED
@@ -1,4 +1,4 @@
1
- import { DecoderBase } from './common/decoder.js';
1
+ import { DecoderBase } from './base/decoder.js';
2
2
  /** 解码 UBJSON */
3
3
  export class Decoder extends DecoderBase {
4
4
  /** 读取完毕 */
@@ -1 +1 @@
1
- {"version":3,"file":"decoder.js","sourceRoot":"","sources":["../src/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,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"}
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
@@ -1,4 +1,4 @@
1
- import { EncoderBase } from './common/encoder.js';
1
+ import { EncoderBase } from './base/encoder.js';
2
2
  /** 编码至 ubjson */
3
3
  export declare class Encoder extends EncoderBase {
4
4
  private readonly flushedBuffers;
package/dist/encoder.js CHANGED
@@ -1,4 +1,4 @@
1
- import { EncoderBase } from './common/encoder.js';
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.buffer.byteLength >= this.length + capacity)
18
+ if (this.data.byteLength >= this.length + capacity)
19
19
  return;
20
20
  // 提交目前的数据
21
- if (this.buffer === this.pool) {
22
- this.flushedBuffers.push(this.buffer.slice(0, this.length));
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.buffer.subarray(0, this.length));
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.buffer = this.pool;
37
- this.view = new DataView(this.buffer.buffer);
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.buffer = new Uint8Array(size);
42
- this.view = new DataView(this.buffer.buffer);
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.buffer.slice(0, this.length);
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.buffer.subarray(0, this.length), offset);
60
+ result.set(this.data.subarray(0, this.length), offset);
61
61
  return result;
62
62
  }
63
63
  /** 抛弃结果 */
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../src/encoder.ts"],"names":[],"mappings":"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"}
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/common/constants.ts"],"names":[],"mappings":""}
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;