@cloudpss/ubjson 0.6.0-alpha.7 → 0.6.0-alpha.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../src/helper/encode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,WAAW;AACX,MAAM,WAAW,YAAY;IACzB,SAAS;IACT,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,SAAS;IACT,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACvC,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,aAAa;AACb,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAazD;AAED,WAAW;AACX,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAGzE;AAED,eAAO,MAAM,OAAO,QAAsB,CAAC;AAC3C,eAAO,MAAM,OAAO,QAAuB,CAAC;AAC5C,WAAW;AACX,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAuBtE;AAED,WAAW;AACX,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA0CrE;AAED,oBAAoB;AACpB,MAAM,MAAM,cAAc,GACpB,SAAS,CAAC,KAAK,GACf,SAAS,CAAC,IAAI,GACd,SAAS,CAAC,KAAK,GACf,SAAS,CAAC,KAAK,GACf,SAAS,CAAC,KAAK,GACf,SAAS,CAAC,OAAO,GACjB,SAAS,CAAC,OAAO,CAAC;AAGxB,eAAO,MAAM,aAAa,QAAgC,CAAC;AAC3D,eAAO,MAAM,aAAa,QAA+B,CAAC;AAC1D,eAAO,MAAM,cAAc,QAAgC,CAAC;AAC5D,eAAO,MAAM,cAAc,QAAgC,CAAC;AAC5D,eAAO,MAAM,cAAc,QAAgC,CAAC;AAC5D,eAAO,MAAM,cAAc,QAAkC,CAAC;AAC9D,eAAO,MAAM,cAAc,QAAkC,CAAC;AAE9D,qCAAqC;AACrC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,GAAG,cAAc,CAgClG;AACD,oBAAoB;AACpB,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAIlF;AACD,uBAAuB;AACvB,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CA4C5G"}
1
+ {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../src/helper/encode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,WAAW;AACX,MAAM,WAAW,YAAY;IACzB,SAAS;IACT,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,SAAS;IACT,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACvC,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,aAAa;AACb,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAazD;AAED,WAAW;AACX,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAGzE;AAGD,eAAO,MAAM,OAAO,QAAsB,CAAC;AAC3C,eAAO,MAAM,OAAO,QAAuB,CAAC;AAC5C,WAAW;AACX,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAuBtE;AAID,WAAW;AACX,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA0CrE;AAED,oBAAoB;AACpB,MAAM,MAAM,cAAc,GACpB,SAAS,CAAC,KAAK,GACf,SAAS,CAAC,IAAI,GACd,SAAS,CAAC,KAAK,GACf,SAAS,CAAC,KAAK,GACf,SAAS,CAAC,KAAK,GACf,SAAS,CAAC,OAAO,GACjB,SAAS,CAAC,OAAO,CAAC;AAGxB,eAAO,MAAM,aAAa,QAAgC,CAAC;AAC3D,eAAO,MAAM,aAAa,QAA+B,CAAC;AAC1D,eAAO,MAAM,cAAc,QAAgC,CAAC;AAC5D,eAAO,MAAM,cAAc,QAAgC,CAAC;AAC5D,eAAO,MAAM,cAAc,QAAgC,CAAC;AAC5D,eAAO,MAAM,cAAc,QAAkC,CAAC;AAC9D,eAAO,MAAM,cAAc,QAAkC,CAAC;AAE9D,qCAAqC;AACrC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,GAAG,cAAc,CAgClG;AACD,oBAAoB;AACpB,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAIlF;AACD,uBAAuB;AACvB,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CA4C5G"}
@@ -19,6 +19,7 @@ export function writeMarker(cursor, marker) {
19
19
  cursor.ensureCapacity(1);
20
20
  cursor.data[cursor.length++] = marker;
21
21
  }
22
+ const { MAX_SAFE_INTEGER } = Number;
22
23
  export const I8_MASK = 105 /* constants.INT8 */ << 8;
23
24
  export const U8_MASK = 85 /* constants.UINT8 */ << 8;
24
25
  /** 写入长度 */
@@ -40,7 +41,7 @@ export function writeLength(cursor, length) {
40
41
  cursor.view.setInt32(cursor.length, length);
41
42
  cursor.length += 4;
42
43
  }
43
- else if (length < Number.MAX_SAFE_INTEGER) {
44
+ else if (length < MAX_SAFE_INTEGER) {
44
45
  cursor.ensureCapacity(9);
45
46
  cursor.data[cursor.length++] = 76 /* constants.INT64 */;
46
47
  cursor.view.setBigInt64(cursor.length, BigInt(length));
@@ -50,6 +51,8 @@ export function writeLength(cursor, length) {
50
51
  throw new RangeError('Invalid length');
51
52
  }
52
53
  }
54
+ const { isFinite } = Number;
55
+ const { fround } = Math;
53
56
  /** 写入数字 */
54
57
  export function writeNumber(cursor, value) {
55
58
  // eslint-disable-next-line unicorn/prefer-math-trunc
@@ -82,7 +85,7 @@ export function writeNumber(cursor, value) {
82
85
  cursor.length = length + 5;
83
86
  }
84
87
  }
85
- else if (Number.isNaN(value) || Math.fround(value) === value) {
88
+ else if (!isFinite(value) || fround(value) === value) {
86
89
  // 如果不会损失精度,使用 32 位浮点
87
90
  cursor.ensureCapacity(5);
88
91
  const { length } = cursor;
@@ -1 +1 @@
1
- {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../src/helper/encode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encode.js","sourceRoot":"","sources":["../../src/helper/encode.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ export declare function longStringInJS(buf: Uint8Array, begin: number, length: n
6
6
  export declare function shortStringInJS(buf: Uint8Array, begin: number, length: number): string | undefined;
7
7
  /** 解码 */
8
8
  export declare function nativeDecode(data: Uint8Array, begin: number, end: number): string;
9
+ /** 解码 */
10
+ export declare function nodeDecode(data: Uint8Array, begin: number, end: number): string;
9
11
  /** 字符串解码,无缓存 */
10
12
  export declare function decode(data: Uint8Array, begin: number, end: number): string;
11
13
  /** 重设环境 */
@@ -1 +1 @@
1
- {"version":3,"file":"string-decoder.d.ts","sourceRoot":"","sources":["../../src/helper/string-decoder.ts"],"names":[],"mappings":"AAKA,SAAS;AACT,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CA8C9E;AAED,eAAe;AACf,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUjG;AACD,eAAe;AACf,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAqGlG;AAKD,SAAS;AACT,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,gBAAgB;AAChB,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAiB3E;AAED,WAAW;AACX,wBAAgB,QAAQ,IAAI,IAAI,CAG/B"}
1
+ {"version":3,"file":"string-decoder.d.ts","sourceRoot":"","sources":["../../src/helper/string-decoder.ts"],"names":[],"mappings":"AAKA,SAAS;AACT,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CA8C9E;AAED,eAAe;AACf,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUjG;AACD,eAAe;AACf,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAqGlG;AAGD,SAAS;AACT,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjF;AAQD,SAAS;AACT,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/E;AAQD,gBAAgB;AAChB,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAiB3E;AACD,WAAW;AACX,wBAAgB,QAAQ,IAAI,IAAI,CAK/B"}
@@ -173,11 +173,21 @@ export function shortStringInJS(buf, begin, length) {
173
173
  return fromCharCode(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);
174
174
  }
175
175
  let TEXT_DECODER;
176
- let TEXT_DECODER_THRESHOLD;
177
176
  /** 解码 */
178
177
  export function nativeDecode(data, begin, end) {
179
178
  return TEXT_DECODER.decode(data.subarray(begin, end));
180
179
  }
180
+ let utf8Slice;
181
+ /** 解码 */
182
+ export function nodeDecode(data, begin, end) {
183
+ return utf8Slice.call(data, begin, end);
184
+ }
185
+ let longDecode = nativeDecode;
186
+ /**
187
+ * 默认解码器阈值
188
+ * @see /benchmark/string-decoder.js
189
+ */
190
+ const DEFAULT_TEXT_DECODER_THRESHOLD = 16;
181
191
  /** 字符串解码,无缓存 */
182
192
  export function decode(data, begin, end) {
183
193
  const length = end - begin;
@@ -187,7 +197,7 @@ export function decode(data, begin, end) {
187
197
  return result;
188
198
  }
189
199
  // 只有小字符串有优化价值
190
- if (length < TEXT_DECODER_THRESHOLD) {
200
+ if (length < DEFAULT_TEXT_DECODER_THRESHOLD) {
191
201
  // if (length < 32) {
192
202
  // const result = longStringInJS(data, begin, length);
193
203
  // if (result != null) return result;
@@ -196,12 +206,14 @@ export function decode(data, begin, end) {
196
206
  return jsDecode(data, begin, end);
197
207
  }
198
208
  // 使用系统解码
199
- return nativeDecode(data, begin, end);
209
+ return longDecode(data, begin, end);
200
210
  }
201
211
  /** 重设环境 */
202
212
  export function resetEnv() {
203
213
  TEXT_DECODER = typeof TextDecoder == 'function' ? new TextDecoder('utf8', { ignoreBOM: true, fatal: false }) : null;
204
- TEXT_DECODER_THRESHOLD = TEXT_DECODER == null ? 0xffff_ffff : 16;
214
+ const hasBuffer = typeof Buffer == 'function';
215
+ utf8Slice = hasBuffer ? Buffer.prototype.utf8Slice : null;
216
+ longDecode = typeof utf8Slice == 'function' ? nodeDecode : TEXT_DECODER ? nativeDecode : jsDecode;
205
217
  }
206
218
  resetEnv();
207
219
  //# sourceMappingURL=string-decoder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"string-decoder.js","sourceRoot":"","sources":["../../src/helper/string-decoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"string-decoder.js","sourceRoot":"","sources":["../../src/helper/string-decoder.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,11 @@ export declare function jsEncodeInto(v: string, buf: Uint8Array, offset: number)
14
14
  * Provided `buf` MUST have enough space.
15
15
  */
16
16
  export declare function nativeEncodeInto(v: string, buf: Uint8Array, offset: number): number;
17
+ /**
18
+ * Encode string into utf-8.
19
+ * Provided `buf` MUST have enough space.
20
+ */
21
+ export declare function nodeEncodeInto(v: string, buf: Uint8Array, offset: number): number;
17
22
  /**
18
23
  * Encode string into utf-8.
19
24
  * Provided `buf` MUST have enough space.
@@ -1 +1 @@
1
- {"version":3,"file":"string-encoder.d.ts","sourceRoot":"","sources":["../../src/helper/string-encoder.ts"],"names":[],"mappings":"AAeA,cAAc;AACd,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAsCzD;AACD,cAAc;AACd,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,cAAc;AACd,eAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAqC/E;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGnF;AACD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAK/E;AACD;;;GAGG;AACH,eAAO,IAAI,UAAU,EAAE,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;AAC5G;;GAEG;AACH,eAAO,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,UAAU,CAAC,WAAW,CAAC,CAAC;AAE1D,WAAW;AACX,wBAAgB,QAAQ,IAAI,IAAI,CAiB/B"}
1
+ {"version":3,"file":"string-encoder.d.ts","sourceRoot":"","sources":["../../src/helper/string-encoder.ts"],"names":[],"mappings":"AAeA,cAAc;AACd,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAsCzD;AACD,cAAc;AACd,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,cAAc;AACd,eAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAqC/E;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGnF;AAOD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGjF;AAOD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAK/E;AACD;;;GAGG;AACH,eAAO,IAAI,UAAU,EAAE,CAAC,CAAC,SAAS,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;AAC5G;;GAEG;AACH,eAAO,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,UAAU,CAAC,WAAW,CAAC,CAAC;AAE1D,WAAW;AACX,wBAAgB,QAAQ,IAAI,IAAI,CAwB/B"}
@@ -105,12 +105,26 @@ export function nativeEncodeInto(v, buf, offset) {
105
105
  const encoded = TEXT_ENCODER.encodeInto(v, buf.subarray(offset));
106
106
  return encoded.written;
107
107
  }
108
+ let utf8Write;
109
+ /**
110
+ * Encode string into utf-8.
111
+ * Provided `buf` MUST have enough space.
112
+ */
113
+ export function nodeEncodeInto(v, buf, offset) {
114
+ const encoded = utf8Write.call(buf, v, offset, buf.byteLength - offset);
115
+ return encoded;
116
+ }
117
+ /**
118
+ * 默认编码器阈值
119
+ * @see /benchmark/string-encoder.js
120
+ */
121
+ const DEFAULT_TEXT_ENCODER_THRESHOLD = 45;
108
122
  /**
109
123
  * Encode string into utf-8.
110
124
  * Provided `buf` MUST have enough space.
111
125
  */
112
126
  export function myEncodeInto(v, buf, offset) {
113
- if (v.length < 55) {
127
+ if (v.length < DEFAULT_TEXT_ENCODER_THRESHOLD) {
114
128
  return jsEncodeInto(v, buf, offset);
115
129
  }
116
130
  return nativeEncodeInto(v, buf, offset);
@@ -127,14 +141,20 @@ export let encode;
127
141
  /** 重设环境 */
128
142
  export function resetEnv() {
129
143
  TEXT_ENCODER = typeof TextEncoder == 'function' ? new TextEncoder() : null;
130
- stringByteLength =
131
- typeof Buffer == 'function' && typeof Buffer.byteLength == 'function'
132
- ? nodeStringByteLength
133
- : jsStringByteLength;
134
- encodeInto = typeof TEXT_ENCODER?.encodeInto == 'function' ? myEncodeInto : jsEncodeInto;
144
+ const hasBuffer = typeof Buffer == 'function';
145
+ stringByteLength = hasBuffer && typeof Buffer.byteLength == 'function' ? nodeStringByteLength : jsStringByteLength;
146
+ utf8Write = hasBuffer ? Buffer.prototype.utf8Write : null;
147
+ encodeInto =
148
+ typeof utf8Write == 'function'
149
+ ? nodeEncodeInto
150
+ : typeof TEXT_ENCODER?.encodeInto == 'function'
151
+ ? myEncodeInto
152
+ : jsEncodeInto;
153
+ // eslint-disable-next-line @typescript-eslint/unbound-method
154
+ const from = hasBuffer ? Buffer.from : null;
135
155
  encode =
136
- typeof Buffer == 'function' && Buffer.from
137
- ? (v) => Buffer.from(v, 'utf8')
156
+ typeof from == 'function'
157
+ ? (v) => from(v, 'utf8')
138
158
  : TEXT_ENCODER
139
159
  ? (v) => TEXT_ENCODER.encode(v)
140
160
  : (v) => {
@@ -1 +1 @@
1
- {"version":3,"file":"string-encoder.js","sourceRoot":"","sources":["../../src/helper/string-encoder.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,2EAA2E;AAE3E,gCAAgC;AAChC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,yBAAyB;AACzB,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC,gCAAgC;AAChC,6BAA6B;AAC7B,yEAAyE;AACzE,uCAAuC;AACvC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,cAAc;AACd,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,IAAI,UAAU,GAAG,UAAU,CAAC;IAE5B,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,UAAU,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAE/C,IAAI,SAAS,GAAG,oBAAoB,EAAE,CAAC;YACnC,SAAS;QACb,CAAC;QAED,IAAI,SAAS,GAAG,wBAAwB,EAAE,CAAC;YACvC,UAAU,IAAI,CAAC,CAAC;YAChB,SAAS;QACb,CAAC;QAED,UAAU,IAAI,CAAC,CAAC;QAEhB,IAAI,SAAS,GAAG,oBAAoB,IAAI,SAAS,GAAG,mBAAmB,EAAE,CAAC;YACtE,SAAS;QACb,CAAC;QAED,iEAAiE;QACjE,iBAAiB;QACjB,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAEvD,wDAAwD;QACxD,0EAA0E;QAC1E,0EAA0E;QAC1E,UAAU;QACV,IAAI,aAAa,GAAG,mBAAmB,IAAI,aAAa,GAAG,kBAAkB,EAAE,CAAC;YAC5E,SAAS;QACb,CAAC;QAED,SAAS,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AACD,cAAc;AACd,MAAM,UAAU,oBAAoB,CAAC,MAAc;IAC/C,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,cAAc;AACd,MAAM,CAAC,IAAI,gBAAuC,CAAC;AAEnD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,CAAS,EAAE,GAAe,EAAE,MAAc;IACnE,IAAI,GAAG,GAAG,MAAM,CAAC;IACjB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,EAAE,GAAG,oBAAoB,EAAE,CAAC;YAC5B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;aAAM,IAAI,EAAE,GAAG,wBAAwB,EAAE,CAAC;YACvC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,EAAE,GAAG,oBAAoB,IAAI,EAAE,GAAG,kBAAkB,EAAE,CAAC;YAC9D,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACvC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,EAAE,GAAG,mBAAmB,EAAE,CAAC;YAClC,uCAAuC;YACvC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;YAClB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;YAClB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,MAAM,IAAI,EAAE,GAAG,mBAAmB,IAAI,EAAE,GAAG,kBAAkB,EAAE,CAAC;gBACrE,+CAA+C;gBAC/C,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;gBAClB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;gBAClB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;gBAClB,CAAC,EAAE,CAAC;gBACJ,SAAS;YACb,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC;YACzD,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9B,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACvC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACtC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACnC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,GAAG,MAAM,CAAC;AACxB,CAAC;AAED,sBAAsB;AACtB,IAAI,YAAgC,CAAC;AACrC;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,CAAS,EAAE,GAAe,EAAE,MAAc;IACvE,MAAM,OAAO,GAAG,YAAa,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,OAAO,OAAO,CAAC,OAAO,CAAC;AAC3B,CAAC;AACD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,CAAS,EAAE,GAAe,EAAE,MAAc;IACnE,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAChB,OAAO,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AACD;;;GAGG;AACH,MAAM,CAAC,IAAI,UAAgG,CAAC;AAC5G;;GAEG;AACH,MAAM,CAAC,IAAI,MAA8C,CAAC;AAE1D,WAAW;AACX,MAAM,UAAU,QAAQ;IACpB,YAAY,GAAG,OAAO,WAAW,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,gBAAgB;QACZ,OAAO,MAAM,IAAI,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,IAAI,UAAU;YACjE,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,kBAAkB,CAAC;IAC7B,UAAU,GAAG,OAAO,YAAY,EAAE,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;IACzF,MAAM;QACF,OAAO,MAAM,IAAI,UAAU,IAAI,MAAM,CAAC,IAAI;YACtC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC;YAC/B,CAAC,CAAC,YAAY;gBACZ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAa,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;oBACF,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChD,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;oBACxB,OAAO,GAAG,CAAC;gBACf,CAAC,CAAC;AAClB,CAAC;AACD,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"string-encoder.js","sourceRoot":"","sources":["../../src/helper/string-encoder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudpss/ubjson",
3
- "version": "0.6.0-alpha.7",
3
+ "version": "0.6.0-alpha.8",
4
4
  "author": "CloudPSS",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -22,7 +22,7 @@
22
22
  "devDependencies": {
23
23
  "@types/lodash": "^4.17.20",
24
24
  "lodash": "^4.17.21",
25
- "ref-impl": "npm:@cloudpss/ubjson@0.5.40"
25
+ "ref-impl": "npm:@cloudpss/ubjson@0.5.55"
26
26
  },
27
27
  "dependencies": {
28
28
  "rxjs": "^7.8.2"
@@ -35,6 +35,7 @@ export function writeMarker(cursor: EncodeCursor, marker: constants): void {
35
35
  cursor.data[cursor.length++] = marker;
36
36
  }
37
37
 
38
+ const { MAX_SAFE_INTEGER } = Number;
38
39
  export const I8_MASK = constants.INT8 << 8;
39
40
  export const U8_MASK = constants.UINT8 << 8;
40
41
  /** 写入长度 */
@@ -53,7 +54,7 @@ export function writeLength(cursor: EncodeCursor, length: number): void {
53
54
  cursor.data[cursor.length++] = constants.INT32;
54
55
  cursor.view.setInt32(cursor.length, length);
55
56
  cursor.length += 4;
56
- } else if (length < Number.MAX_SAFE_INTEGER) {
57
+ } else if (length < MAX_SAFE_INTEGER) {
57
58
  cursor.ensureCapacity(9);
58
59
  cursor.data[cursor.length++] = constants.INT64;
59
60
  cursor.view.setBigInt64(cursor.length, BigInt(length));
@@ -63,6 +64,8 @@ export function writeLength(cursor: EncodeCursor, length: number): void {
63
64
  }
64
65
  }
65
66
 
67
+ const { isFinite } = Number;
68
+ const { fround } = Math;
66
69
  /** 写入数字 */
67
70
  export function writeNumber(cursor: EncodeCursor, value: number): void {
68
71
  // eslint-disable-next-line unicorn/prefer-math-trunc
@@ -91,7 +94,7 @@ export function writeNumber(cursor: EncodeCursor, value: number): void {
91
94
  cursor.view.setInt32(length + 1, value);
92
95
  cursor.length = length + 5;
93
96
  }
94
- } else if (Number.isNaN(value) || Math.fround(value) === value) {
97
+ } else if (!isFinite(value) || fround(value) === value) {
95
98
  // 如果不会损失精度,使用 32 位浮点
96
99
  cursor.ensureCapacity(5);
97
100
  const { length } = cursor;
@@ -169,13 +169,28 @@ export function shortStringInJS(buf: Uint8Array, begin: number, length: number):
169
169
  }
170
170
 
171
171
  let TEXT_DECODER: TextDecoder | null;
172
- let TEXT_DECODER_THRESHOLD: number;
173
-
174
172
  /** 解码 */
175
173
  export function nativeDecode(data: Uint8Array, begin: number, end: number): string {
176
174
  return TEXT_DECODER!.decode(data.subarray(begin, end));
177
175
  }
178
176
 
177
+ /** Undocumented */
178
+ type BufferUndocumented = Buffer & {
179
+ utf8Slice: (this: Uint8Array, start: number, end: number) => string;
180
+ };
181
+
182
+ let utf8Slice: ((this: Uint8Array, start: number, end: number) => string) | null;
183
+ /** 解码 */
184
+ export function nodeDecode(data: Uint8Array, begin: number, end: number): string {
185
+ return utf8Slice!.call(data, begin, end);
186
+ }
187
+
188
+ let longDecode: (data: Uint8Array, begin: number, end: number) => string = nativeDecode;
189
+ /**
190
+ * 默认解码器阈值
191
+ * @see /benchmark/string-decoder.js
192
+ */
193
+ const DEFAULT_TEXT_DECODER_THRESHOLD = 16;
179
194
  /** 字符串解码,无缓存 */
180
195
  export function decode(data: Uint8Array, begin: number, end: number): string {
181
196
  const length = end - begin;
@@ -184,7 +199,7 @@ export function decode(data: Uint8Array, begin: number, end: number): string {
184
199
  if (result != null) return result;
185
200
  }
186
201
  // 只有小字符串有优化价值
187
- if (length < TEXT_DECODER_THRESHOLD) {
202
+ if (length < DEFAULT_TEXT_DECODER_THRESHOLD) {
188
203
  // if (length < 32) {
189
204
  // const result = longStringInJS(data, begin, length);
190
205
  // if (result != null) return result;
@@ -193,12 +208,13 @@ export function decode(data: Uint8Array, begin: number, end: number): string {
193
208
  return jsDecode(data, begin, end);
194
209
  }
195
210
  // 使用系统解码
196
- return nativeDecode(data, begin, end);
211
+ return longDecode(data, begin, end);
197
212
  }
198
-
199
213
  /** 重设环境 */
200
214
  export function resetEnv(): void {
201
215
  TEXT_DECODER = typeof TextDecoder == 'function' ? new TextDecoder('utf8', { ignoreBOM: true, fatal: false }) : null;
202
- TEXT_DECODER_THRESHOLD = TEXT_DECODER == null ? 0xffff_ffff : 16;
216
+ const hasBuffer = typeof Buffer == 'function';
217
+ utf8Slice = hasBuffer ? (Buffer.prototype as BufferUndocumented).utf8Slice : null;
218
+ longDecode = typeof utf8Slice == 'function' ? nodeDecode : TEXT_DECODER ? nativeDecode : jsDecode;
203
219
  }
204
220
  resetEnv();
@@ -114,12 +114,32 @@ export function nativeEncodeInto(v: string, buf: Uint8Array, offset: number): nu
114
114
  const encoded = TEXT_ENCODER!.encodeInto(v, buf.subarray(offset));
115
115
  return encoded.written;
116
116
  }
117
+
118
+ /** Undocumented */
119
+ type BufferUndocumented = Buffer & {
120
+ utf8Write: (this: Uint8Array, v: string, offset: number, byteLength: number) => number;
121
+ };
122
+ let utf8Write: ((this: Uint8Array, v: string, offset: number, byteLength: number) => number) | null;
123
+ /**
124
+ * Encode string into utf-8.
125
+ * Provided `buf` MUST have enough space.
126
+ */
127
+ export function nodeEncodeInto(v: string, buf: Uint8Array, offset: number): number {
128
+ const encoded = utf8Write!.call(buf, v, offset, buf.byteLength - offset);
129
+ return encoded;
130
+ }
131
+
132
+ /**
133
+ * 默认编码器阈值
134
+ * @see /benchmark/string-encoder.js
135
+ */
136
+ const DEFAULT_TEXT_ENCODER_THRESHOLD = 45;
117
137
  /**
118
138
  * Encode string into utf-8.
119
139
  * Provided `buf` MUST have enough space.
120
140
  */
121
141
  export function myEncodeInto(v: string, buf: Uint8Array, offset: number): number {
122
- if (v.length < 55) {
142
+ if (v.length < DEFAULT_TEXT_ENCODER_THRESHOLD) {
123
143
  return jsEncodeInto(v, buf, offset);
124
144
  }
125
145
  return nativeEncodeInto(v, buf, offset);
@@ -137,14 +157,21 @@ export let encode: (v: string) => Uint8Array<ArrayBuffer>;
137
157
  /** 重设环境 */
138
158
  export function resetEnv(): void {
139
159
  TEXT_ENCODER = typeof TextEncoder == 'function' ? new TextEncoder() : null;
140
- stringByteLength =
141
- typeof Buffer == 'function' && typeof Buffer.byteLength == 'function'
142
- ? nodeStringByteLength
143
- : jsStringByteLength;
144
- encodeInto = typeof TEXT_ENCODER?.encodeInto == 'function' ? myEncodeInto : jsEncodeInto;
160
+ const hasBuffer = typeof Buffer == 'function';
161
+ stringByteLength = hasBuffer && typeof Buffer.byteLength == 'function' ? nodeStringByteLength : jsStringByteLength;
162
+
163
+ utf8Write = hasBuffer ? (Buffer.prototype as BufferUndocumented).utf8Write : null;
164
+ encodeInto =
165
+ typeof utf8Write == 'function'
166
+ ? nodeEncodeInto
167
+ : typeof TEXT_ENCODER?.encodeInto == 'function'
168
+ ? myEncodeInto
169
+ : jsEncodeInto;
170
+ // eslint-disable-next-line @typescript-eslint/unbound-method
171
+ const from = hasBuffer ? Buffer.from : null;
145
172
  encode =
146
- typeof Buffer == 'function' && Buffer.from
147
- ? (v) => Buffer.from(v, 'utf8')
173
+ typeof from == 'function'
174
+ ? (v) => from(v, 'utf8')
148
175
  : TEXT_ENCODER
149
176
  ? (v) => TEXT_ENCODER!.encode(v)
150
177
  : (v) => {