@nuintun/buffer 0.3.0 → 0.3.2

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/cjs/index.d.cts CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * @module Buffer
3
3
  */
4
- export declare enum Endian {
5
- Big = 0,
6
- Little = 1
7
- }
4
+ import type { TypedArray } from './utils.cjs';
5
+ import { Endian } from './enum.cjs';
6
+ export { Endian };
7
+ export type { TypedArray };
8
8
  /**
9
9
  * @function endianness
10
10
  * @description 获取系统默认字节序
@@ -19,16 +19,22 @@ export declare class Buffer {
19
19
  #private;
20
20
  /**
21
21
  * @constructor
22
- * @param {number} [length] 缓冲区初始大小
22
+ * @param {number} [length] 缓冲区初始字节大小
23
23
  * @param {number} [pageSize] 缓冲区分页大小,扩容时将按分页大小增加
24
24
  */
25
25
  constructor(length?: number, pageSize?: number);
26
26
  /**
27
27
  * @constructor
28
- * @param {Uint8Array} bytes 缓冲区初始数据
28
+ * @param {Uint8Array} bytes 缓冲区初始字节数据
29
+ * @param {number} [pageSize] 缓冲区分页大小,扩容时将按分页大小增加
30
+ */
31
+ constructor(bytes: TypedArray, pageSize?: number);
32
+ /**
33
+ * @constructor
34
+ * @param {ArrayBuffer} buffer 缓冲区初始缓冲数据
29
35
  * @param {number} [pageSize] 缓冲区分页大小,扩容时将按分页大小增加
30
36
  */
31
- constructor(bytes?: Uint8Array, pageSize?: number);
37
+ constructor(buffer: ArrayBuffer, pageSize?: number);
32
38
  /**
33
39
  * @public
34
40
  * @property {number} offset
@@ -61,14 +67,14 @@ export declare class Buffer {
61
67
  /**
62
68
  * @public
63
69
  * @property {ArrayBuffer} buffer
64
- * @description 获取 ArrayBuffer 缓冲区
70
+ * @description 获取全部 ArrayBuffer 原始缓冲区
65
71
  * @returns {ArrayBuffer}
66
72
  */
67
73
  get buffer(): ArrayBuffer;
68
74
  /**
69
75
  * @public
70
76
  * @property {Uint8Array} bytes
71
- * @description 获取 Uint8Array 缓冲区
77
+ * @description 获取已写入 Uint8Array 原始缓冲区
72
78
  * @returns {Uint8Array}
73
79
  */
74
80
  get bytes(): Uint8Array;
@@ -271,6 +277,18 @@ export declare class Buffer {
271
277
  * @returns {this}
272
278
  */
273
279
  copyWithin(target: number, start: number, end?: number): this;
280
+ /**
281
+ * @method entries
282
+ * @description 获取迭代器
283
+ * @returns {IterableIterator<[number, number]>}
284
+ */
285
+ entries(): IterableIterator<[number, number]>;
286
+ /**
287
+ * @method values
288
+ * @description 获取迭代器
289
+ * @returns {IterableIterator<number>}
290
+ */
291
+ values(): IterableIterator<number>;
274
292
  /**
275
293
  * @override
276
294
  * @method toString
@@ -278,4 +296,10 @@ export declare class Buffer {
278
296
  * @returns {string}
279
297
  */
280
298
  toString(): string;
299
+ /**
300
+ * @method iterator
301
+ * @description 迭代器
302
+ * @returns {IterableIterator<number>}
303
+ */
304
+ [Symbol.iterator](): IterableIterator<number>;
281
305
  }
package/cjs/utils.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.3.0
4
+ * @version 0.3.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A buffer tool for javascript.
7
7
  * @see https://github.com/nuintun/Buffer#readme
@@ -12,18 +12,40 @@
12
12
  /**
13
13
  * @module utils
14
14
  */
15
+ // 获取 TypedArray 原型
16
+ const TypedArray = Object.getPrototypeOf(Uint8Array);
17
+ /**
18
+ * @function isTypedArray
19
+ * @description 检测是否为 TypedArray
20
+ * @param value 待判断的值
21
+ * @returns {boolean}
22
+ */
23
+ function isTypedArray(value) {
24
+ return value instanceof TypedArray;
25
+ }
26
+ /**
27
+ * @function isNaturalNumber
28
+ * @description 判断是否为自然数
29
+ * @param value 待判断的值
30
+ * @returns {boolean}
31
+ */
32
+ function isNaturalNumber(value) {
33
+ return Number.isInteger(value) && value >= 0;
34
+ }
15
35
  /**
16
36
  * @function makeUint8Array
17
37
  * @description 创建一个合适长度的 Uint8Array
18
- * @param {number} byteLength 数据字节总大小
38
+ * @param {number} length 数据长度大小
19
39
  * @param {number} pageSize 缓冲区页大小
20
40
  * @returns {Uint8Array}
21
41
  */
22
- function makeUint8Array(byteLength, pageSize) {
23
- if (byteLength > pageSize) {
24
- return new Uint8Array(Math.ceil(byteLength / pageSize) * pageSize);
42
+ function makeUint8Array(length, pageSize) {
43
+ if (length > pageSize) {
44
+ return new Uint8Array(Math.ceil(length / pageSize) * pageSize);
25
45
  }
26
46
  return new Uint8Array(pageSize);
27
47
  }
28
48
 
49
+ exports.isNaturalNumber = isNaturalNumber;
50
+ exports.isTypedArray = isTypedArray;
29
51
  exports.makeUint8Array = makeUint8Array;
package/cjs/utils.d.cts CHANGED
@@ -1,11 +1,37 @@
1
1
  /**
2
2
  * @module utils
3
3
  */
4
+ export type TypedArray =
5
+ | Int8Array
6
+ | Int16Array
7
+ | Int32Array
8
+ | Uint8Array
9
+ | Uint16Array
10
+ | Uint32Array
11
+ | Float32Array
12
+ | Float64Array
13
+ | BigInt64Array
14
+ | BigUint64Array
15
+ | Uint8ClampedArray;
16
+ /**
17
+ * @function isTypedArray
18
+ * @description 检测是否为 TypedArray
19
+ * @param value 待判断的值
20
+ * @returns {boolean}
21
+ */
22
+ export declare function isTypedArray(value: unknown): value is TypedArray;
23
+ /**
24
+ * @function isNaturalNumber
25
+ * @description 判断是否为自然数
26
+ * @param value 待判断的值
27
+ * @returns {boolean}
28
+ */
29
+ export declare function isNaturalNumber(value: unknown): value is number;
4
30
  /**
5
31
  * @function makeUint8Array
6
32
  * @description 创建一个合适长度的 Uint8Array
7
- * @param {number} byteLength 数据字节总大小
33
+ * @param {number} length 数据长度大小
8
34
  * @param {number} pageSize 缓冲区页大小
9
35
  * @returns {Uint8Array}
10
36
  */
11
- export declare function makeUint8Array(byteLength: number, pageSize: number): Uint8Array;
37
+ export declare function makeUint8Array(length: number, pageSize: number): Uint8Array;
package/esm/Binary.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.3.0
4
+ * @version 0.3.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A buffer tool for javascript.
7
7
  * @see https://github.com/nuintun/Buffer#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.3.0
4
+ * @version 0.3.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A buffer tool for javascript.
7
7
  * @see https://github.com/nuintun/Buffer#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.3.0
4
+ * @version 0.3.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A buffer tool for javascript.
7
7
  * @see https://github.com/nuintun/Buffer#readme
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.3.0
4
+ * @version 0.3.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A buffer tool for javascript.
7
7
  * @see https://github.com/nuintun/Buffer#readme
package/esm/enum.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  /**
2
2
  * @module enum
3
3
  */
4
+ export declare enum Endian {
5
+ Big = 0,
6
+ Little = 1
7
+ }
4
8
  export declare const enum SizeOf {
5
9
  INT8 = 1,
6
10
  UINT8 = 1,
package/esm/enum.js ADDED
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @package @nuintun/buffer
3
+ * @license MIT
4
+ * @version 0.3.2
5
+ * @author nuintun <nuintun@qq.com>
6
+ * @description A buffer tool for javascript.
7
+ * @see https://github.com/nuintun/Buffer#readme
8
+ */
9
+
10
+ /**
11
+ * @module enum
12
+ */
13
+ // 字节序类型
14
+ var Endian;
15
+ (function (Endian) {
16
+ Endian[(Endian['Big'] = 0)] = 'Big';
17
+ Endian[(Endian['Little'] = 1)] = 'Little';
18
+ })(Endian || (Endian = {}));
19
+
20
+ export { Endian };
package/esm/errors.d.ts CHANGED
@@ -1,9 +1,15 @@
1
1
  /**
2
2
  * @module errors
3
3
  */
4
+ /**
5
+ * @function encodingInvalid
6
+ * @description 未支持的编码格式
7
+ * @param encoding 编码格式
8
+ */
4
9
  export declare function encodingInvalid(encoding: string): string;
5
- export declare const unknownEndianness = 'unknown endianness';
6
- export declare const lengthInvalid = 'invalid buffer length';
7
10
  export declare const offsetInvalid = 'invalid buffer offset';
11
+ export declare const lengthInvalid = 'invalid buffer length';
12
+ export declare const unknownEndianness = 'unknown endianness';
13
+ export declare const readLengthInvalid = 'invalid read length';
8
14
  export declare const readOverflow = 'read is outside the bounds of the Buffer';
9
15
  export declare const offsetOverflow = 'offset is outside the bounds of the Buffer';
package/esm/errors.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.3.0
4
+ * @version 0.3.2
5
5
  * @author nuintun <nuintun@qq.com>
6
6
  * @description A buffer tool for javascript.
7
7
  * @see https://github.com/nuintun/Buffer#readme
@@ -10,19 +10,23 @@
10
10
  /**
11
11
  * @module errors
12
12
  */
13
- // 未支持的编码格式
13
+ /**
14
+ * @function encodingInvalid
15
+ * @description 未支持的编码格式
16
+ * @param encoding 编码格式
17
+ */
14
18
  function encodingInvalid(encoding) {
15
19
  return 'unsupported encoding ' + encoding;
16
20
  }
17
- // 未知字节序
18
- const unknownEndianness = 'unknown endianness';
19
- // 非法长度
20
- const lengthInvalid = 'invalid buffer length';
21
21
  // 非法读写指针
22
22
  const offsetInvalid = 'invalid buffer offset';
23
+ // 非法长度
24
+ const lengthInvalid = 'invalid buffer length';
25
+ // 未知字节序
26
+ const unknownEndianness = 'unknown endianness';
27
+ // 数据读取长度非法
28
+ const readLengthInvalid = 'invalid read length';
23
29
  // 数据读取溢出
24
30
  const readOverflow = 'read is outside the bounds of the Buffer';
25
- // 读写指针溢出
26
- const offsetOverflow = 'offset is outside the bounds of the Buffer';
27
31
 
28
- export { encodingInvalid, lengthInvalid, offsetInvalid, offsetOverflow, readOverflow, unknownEndianness };
32
+ export { encodingInvalid, lengthInvalid, offsetInvalid, readLengthInvalid, readOverflow, unknownEndianness };
package/esm/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * @module Buffer
3
3
  */
4
- export declare enum Endian {
5
- Big = 0,
6
- Little = 1
7
- }
4
+ import type { TypedArray } from './utils.js';
5
+ import { Endian } from './enum.js';
6
+ export { Endian };
7
+ export type { TypedArray };
8
8
  /**
9
9
  * @function endianness
10
10
  * @description 获取系统默认字节序
@@ -19,16 +19,22 @@ export declare class Buffer {
19
19
  #private;
20
20
  /**
21
21
  * @constructor
22
- * @param {number} [length] 缓冲区初始大小
22
+ * @param {number} [length] 缓冲区初始字节大小
23
23
  * @param {number} [pageSize] 缓冲区分页大小,扩容时将按分页大小增加
24
24
  */
25
25
  constructor(length?: number, pageSize?: number);
26
26
  /**
27
27
  * @constructor
28
- * @param {Uint8Array} bytes 缓冲区初始数据
28
+ * @param {Uint8Array} bytes 缓冲区初始字节数据
29
+ * @param {number} [pageSize] 缓冲区分页大小,扩容时将按分页大小增加
30
+ */
31
+ constructor(bytes: TypedArray, pageSize?: number);
32
+ /**
33
+ * @constructor
34
+ * @param {ArrayBuffer} buffer 缓冲区初始缓冲数据
29
35
  * @param {number} [pageSize] 缓冲区分页大小,扩容时将按分页大小增加
30
36
  */
31
- constructor(bytes?: Uint8Array, pageSize?: number);
37
+ constructor(buffer: ArrayBuffer, pageSize?: number);
32
38
  /**
33
39
  * @public
34
40
  * @property {number} offset
@@ -61,14 +67,14 @@ export declare class Buffer {
61
67
  /**
62
68
  * @public
63
69
  * @property {ArrayBuffer} buffer
64
- * @description 获取 ArrayBuffer 缓冲区
70
+ * @description 获取全部 ArrayBuffer 原始缓冲区
65
71
  * @returns {ArrayBuffer}
66
72
  */
67
73
  get buffer(): ArrayBuffer;
68
74
  /**
69
75
  * @public
70
76
  * @property {Uint8Array} bytes
71
- * @description 获取 Uint8Array 缓冲区
77
+ * @description 获取已写入 Uint8Array 原始缓冲区
72
78
  * @returns {Uint8Array}
73
79
  */
74
80
  get bytes(): Uint8Array;
@@ -271,6 +277,18 @@ export declare class Buffer {
271
277
  * @returns {this}
272
278
  */
273
279
  copyWithin(target: number, start: number, end?: number): this;
280
+ /**
281
+ * @method entries
282
+ * @description 获取迭代器
283
+ * @returns {IterableIterator<[number, number]>}
284
+ */
285
+ entries(): IterableIterator<[number, number]>;
286
+ /**
287
+ * @method values
288
+ * @description 获取迭代器
289
+ * @returns {IterableIterator<number>}
290
+ */
291
+ values(): IterableIterator<number>;
274
292
  /**
275
293
  * @override
276
294
  * @method toString
@@ -278,4 +296,10 @@ export declare class Buffer {
278
296
  * @returns {string}
279
297
  */
280
298
  toString(): string;
299
+ /**
300
+ * @method iterator
301
+ * @description 迭代器
302
+ * @returns {IterableIterator<number>}
303
+ */
304
+ [Symbol.iterator](): IterableIterator<number>;
281
305
  }