@cloudpss/ubjson 0.5.55 → 0.6.0-alpha.10

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 (48) hide show
  1. package/dist/base/decoder.js +2 -5
  2. package/dist/base/decoder.js.map +1 -1
  3. package/dist/base/encoder.js +6 -8
  4. package/dist/base/encoder.js.map +1 -1
  5. package/dist/encoder.js +8 -5
  6. package/dist/encoder.js.map +1 -1
  7. package/dist/helper/encode.d.ts.map +1 -1
  8. package/dist/helper/encode.js +5 -2
  9. package/dist/helper/encode.js.map +1 -1
  10. package/dist/helper/string-decoder.d.ts +2 -0
  11. package/dist/helper/string-decoder.d.ts.map +1 -1
  12. package/dist/helper/string-decoder.js +16 -4
  13. package/dist/helper/string-decoder.js.map +1 -1
  14. package/dist/helper/string-encoder.d.ts +5 -0
  15. package/dist/helper/string-encoder.d.ts.map +1 -1
  16. package/dist/helper/string-encoder.js +28 -8
  17. package/dist/helper/string-encoder.js.map +1 -1
  18. package/dist/stream/decoder.js +0 -2
  19. package/dist/stream/decoder.js.map +1 -1
  20. package/dist/stream/encoder.js +0 -2
  21. package/dist/stream/encoder.js.map +1 -1
  22. package/dist/stream-helper/encoder.js +0 -1
  23. package/dist/stream-helper/encoder.js.map +1 -1
  24. package/package.json +2 -2
  25. package/src/helper/encode.ts +5 -2
  26. package/src/helper/string-decoder.ts +22 -6
  27. package/src/helper/string-encoder.ts +35 -8
  28. package/tests/{.utils.js → .utils.ts} +9 -8
  29. package/tests/{decode.js → decode.ts} +15 -17
  30. package/tests/e2e/{.data.js → .data.ts} +2 -4
  31. package/tests/e2e/{no-buffer-text.js → no-buffer-text.ts} +2 -2
  32. package/tests/e2e/{no-buffer.js → no-buffer.ts} +2 -2
  33. package/tests/e2e/{no-encode-into.js → no-encode-into.ts} +2 -2
  34. package/tests/e2e/{no-textencoder-decoder.js → no-textencoder-decoder.ts} +2 -2
  35. package/tests/e2e/{normal.js → normal.ts} +1 -1
  36. package/tests/e2e/{stream.js → stream.ts} +6 -6
  37. package/tests/{encode.js → encode.ts} +6 -6
  38. package/tests/{huge-string.js → huge-string.ts} +2 -5
  39. package/tests/rxjs/{decode.js → decode.ts} +18 -21
  40. package/tests/rxjs/{encode.js → encode.ts} +3 -5
  41. package/tests/stream/{decode.js → decode.ts} +8 -10
  42. package/tests/stream/{encode.js → encode.ts} +8 -10
  43. package/tests/stream/{many.js → many.ts} +19 -30
  44. package/tests/{string-encoding.js → string-encoding.ts} +7 -4
  45. package/jest.config.js +0 -3
  46. package/tests/tsconfig.json +0 -3
  47. package/tsconfig.json +0 -7
  48. /package/tests/{many.js → many.ts} +0 -0
@@ -1,15 +1,13 @@
1
1
  import { Readable } from 'node:stream';
2
+ import type { ReadableStream as ReadableStream2 } from 'node:stream/web';
2
3
  import { encodeMany, decodeMany } from '../../dist/stream/index.js';
3
4
  import { buffer } from 'node:stream/consumers';
4
5
  import { finished } from 'node:stream/promises';
5
6
 
6
7
  /**
7
8
  * iterableToAsyncIterable
8
- * @template T
9
- * @param {Iterable<T>} iterable - iterable
10
- * @returns {AsyncIterable<T>} async iterable
11
9
  */
12
- function iterableToAsyncIterable(iterable) {
10
+ function iterableToAsyncIterable<T>(iterable: Iterable<T>): AsyncIterable<T> {
13
11
  return {
14
12
  [Symbol.asyncIterator]: () => {
15
13
  const iterator = iterable[Symbol.iterator]();
@@ -23,12 +21,9 @@ function iterableToAsyncIterable(iterable) {
23
21
 
24
22
  /**
25
23
  * asyncIterableToArray
26
- * @template T
27
- * @param {AsyncIterable<T>} asyncIterable - async iterable
28
- * @returns {Promise<Array<T>>} array
29
24
  */
30
- async function asyncIterableToArray(asyncIterable) {
31
- const array = [];
25
+ async function asyncIterableToArray<T>(asyncIterable: AsyncIterable<T>): Promise<T[]> {
26
+ const array: T[] = [];
32
27
  for await (const item of asyncIterable) {
33
28
  array.push(item);
34
29
  }
@@ -53,7 +48,7 @@ test('encode/decode many', async () => {
53
48
  ];
54
49
  const encoded = await buffer(encodeMany(iterableToAsyncIterable(data)));
55
50
  const decoded = await asyncIterableToArray(
56
- decodeMany(/** @type {ReadableStream<Uint8Array>} */ (Readable.toWeb(Readable.from([encoded])))),
51
+ decodeMany(Readable.toWeb(Readable.from([encoded])) as ReadableStream<Uint8Array<ArrayBuffer>>),
57
52
  );
58
53
  expect(decoded).toEqual([
59
54
  {
@@ -74,7 +69,7 @@ test('encode/decode many', async () => {
74
69
 
75
70
  test('encode/decode many with invalid value', async () => {
76
71
  await expect(async () => {
77
- const readable = Readable.fromWeb(/** @type {any} */ (encodeMany(iterableToAsyncIterable([1, () => 1]))));
72
+ const readable = Readable.fromWeb(encodeMany(iterableToAsyncIterable([1, () => 1])) as ReadableStream2);
78
73
  const f = finished(readable);
79
74
  readable.resume();
80
75
  await f;
@@ -82,31 +77,25 @@ test('encode/decode many with invalid value', async () => {
82
77
  });
83
78
 
84
79
  test('encode/decode many with error', async () => {
85
- // await expect(async () => {
86
- // try {
87
- // const stream = encodeMany(
88
- // (async function* () {
89
- // yield 1;
90
- // await Promise.resolve();
91
- // // throw new Error('xx');
92
- // })(),
93
- // );
94
- // const f = finished(/** @type {any} */ (stream));
95
- // for await (const _ of stream) {
96
- // //
97
- // }
98
- // await f;
99
- // } catch (ex) {
100
- // console.log(ex);
101
- // }
102
- // }).rejects.toThrow('xx');
80
+ await expect(async () => {
81
+ const stream = encodeMany(
82
+ (async function* () {
83
+ yield 1;
84
+ await Promise.resolve();
85
+ throw new Error('test error');
86
+ })(),
87
+ );
88
+ for await (const _ of stream) {
89
+ //
90
+ }
91
+ }).rejects.toThrow('test error');
103
92
  });
104
93
 
105
94
  test('encode/decode many with undefined', async () => {
106
95
  const data = [1, null, undefined, [undefined]];
107
96
  const encoded = await buffer(encodeMany(iterableToAsyncIterable(data)));
108
97
  const decoded = await asyncIterableToArray(
109
- decodeMany(/** @type {ReadableStream<Uint8Array>} */ (Readable.toWeb(Readable.from([encoded])))),
98
+ decodeMany(Readable.toWeb(Readable.from([encoded])) as ReadableStream<Uint8Array<ArrayBuffer>>),
110
99
  );
111
100
  expect(decoded).toEqual([
112
101
  1,
@@ -2,11 +2,9 @@ import { Encoder } from '../dist/encoder.js';
2
2
  import { decode, jsDecode } from '../dist/helper/string-decoder.js';
3
3
 
4
4
  /**
5
- * 测试编码
6
- * @param {Pick<TextEncoder, 'encode'>} encoder encoder
7
- * @param {Pick<TextDecoder, 'decode'>} decoder decoder
5
+ * 测试编码器和解码器
8
6
  */
9
- function testEncoding(encoder, decoder) {
7
+ function testEncoding(encoder: Pick<TextEncoder, 'encode'>, decoder: Pick<TextDecoder, 'decode'>) {
10
8
  expect(decoder.decode(encoder.encode(''))).toEqual('');
11
9
  expect(decoder.decode(encoder.encode('a'))).toEqual('a');
12
10
  expect(decoder.decode(encoder.encode('p4'))).toEqual('p4');
@@ -46,6 +44,7 @@ function testEncoding(encoder, decoder) {
46
44
  bad.fill(0xff);
47
45
  expect(decoder.decode(bad)).toEqual('\uFFFD'.repeat(length));
48
46
 
47
+ // eslint-disable-next-line unicorn/prefer-code-point
49
48
  bad.fill('a'.charCodeAt(0), 0, length - 1);
50
49
  expect(decoder.decode(bad)).toEqual('a'.repeat(length - 1) + '\uFFFD');
51
50
  }
@@ -55,6 +54,7 @@ function testEncoding(encoder, decoder) {
55
54
  for (let index = 0; index < 0xffff; index++) {
56
55
  // 跳过 Surrogate
57
56
  if (index >= 0xd800 && index <= 0xdfff) continue;
57
+ // eslint-disable-next-line unicorn/prefer-code-point
58
58
  const expected = String.fromCharCode(index);
59
59
  const encoded = encoder.encode(expected);
60
60
  const actual = decoder.decode(encoded);
@@ -77,6 +77,7 @@ function testEncoding(encoder, decoder) {
77
77
  // 检查所有 2 字节 ASCII
78
78
  for (let index = 0; index < 0x80; index++) {
79
79
  for (let index2 = 0; index2 < 0x80; index2++) {
80
+ // eslint-disable-next-line unicorn/prefer-code-point
80
81
  const expected = String.fromCharCode(index, index2);
81
82
  const actual = decoder.decode(encoder.encode(expected));
82
83
  if (expected !== actual) expect(actual).toEqual(expected);
@@ -121,6 +122,8 @@ test('decode string js', () => {
121
122
  });
122
123
 
123
124
  test('decode malformed', () => {
125
+ // eslint-disable-next-line unicorn/prefer-code-point
124
126
  expect(decode(new Uint8Array([0xff, 'a'.charCodeAt(0)]), 0, 2)).toEqual('\uFFFDa');
127
+ // eslint-disable-next-line unicorn/prefer-code-point
125
128
  expect(jsDecode(new Uint8Array([0xff, 'a'.charCodeAt(0)]), 0, 2)).toEqual('\uFFFDa');
126
129
  });
package/jest.config.js DELETED
@@ -1,3 +0,0 @@
1
- import { config } from '../jest.config.js';
2
-
3
- export default { ...config };
@@ -1,3 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.test"
3
- }
package/tsconfig.json DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "extends": "../tsconfig.build",
3
- "compilerOptions": {
4
- "isolatedModules": false,
5
- "verbatimModuleSyntax": false
6
- }
7
- }
File without changes