@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/Binary.cjs +1 -1
- package/cjs/Encoding/UTF8.cjs +1 -1
- package/cjs/Encoding/Unicode.cjs +1 -1
- package/cjs/Encoding/index.cjs +1 -1
- package/cjs/enum.cjs +20 -0
- package/cjs/enum.d.cts +4 -0
- package/cjs/errors.cjs +13 -9
- package/cjs/errors.d.cts +8 -2
- package/cjs/index.cjs +161 -100
- package/cjs/index.d.cts +33 -9
- package/cjs/utils.cjs +27 -5
- package/cjs/utils.d.cts +28 -2
- package/esm/Binary.js +1 -1
- package/esm/Encoding/UTF8.js +1 -1
- package/esm/Encoding/Unicode.js +1 -1
- package/esm/Encoding/index.js +1 -1
- package/esm/enum.d.ts +4 -0
- package/esm/enum.js +20 -0
- package/esm/errors.d.ts +8 -2
- package/esm/errors.js +13 -9
- package/esm/index.d.ts +33 -9
- package/esm/index.js +154 -99
- package/esm/utils.d.ts +28 -2
- package/esm/utils.js +26 -6
- package/package.json +1 -1
package/cjs/index.d.cts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Buffer
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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(
|
|
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
|
|
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
|
|
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.
|
|
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}
|
|
38
|
+
* @param {number} length 数据长度大小
|
|
19
39
|
* @param {number} pageSize 缓冲区页大小
|
|
20
40
|
* @returns {Uint8Array}
|
|
21
41
|
*/
|
|
22
|
-
function makeUint8Array(
|
|
23
|
-
if (
|
|
24
|
-
return new Uint8Array(Math.ceil(
|
|
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}
|
|
33
|
+
* @param {number} length 数据长度大小
|
|
8
34
|
* @param {number} pageSize 缓冲区页大小
|
|
9
35
|
* @returns {Uint8Array}
|
|
10
36
|
*/
|
|
11
|
-
export declare function makeUint8Array(
|
|
37
|
+
export declare function makeUint8Array(length: number, pageSize: number): Uint8Array;
|
package/esm/Binary.js
CHANGED
package/esm/Encoding/UTF8.js
CHANGED
package/esm/Encoding/Unicode.js
CHANGED
package/esm/Encoding/index.js
CHANGED
package/esm/enum.d.ts
CHANGED
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.
|
|
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,
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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(
|
|
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
|
|
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
|
|
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
|
}
|