@nuintun/buffer 0.6.0 → 0.7.0
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/README.md +6 -7
- package/cjs/binary.cjs +1 -1
- package/cjs/encoding.cjs +1 -1
- package/cjs/enum.cjs +1 -1
- package/cjs/errors.cjs +1 -1
- package/cjs/index.cjs +24 -20
- package/cjs/index.d.cts +6 -1
- package/cjs/utils.cjs +1 -1
- package/esm/binary.js +1 -1
- package/esm/encoding.js +1 -1
- package/esm/enum.js +1 -1
- package/esm/errors.js +1 -1
- package/esm/index.d.ts +6 -1
- package/esm/index.js +24 -20
- package/esm/utils.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -53,6 +53,11 @@ export interface Options {
|
|
|
53
53
|
* @description 文本解码函数
|
|
54
54
|
*/
|
|
55
55
|
decode?: TextDecode;
|
|
56
|
+
/**
|
|
57
|
+
* @property {boolean} [littleEndian]
|
|
58
|
+
* @description 指定默认字节序,默认小端字节序
|
|
59
|
+
*/
|
|
60
|
+
littleEndian?: boolean;
|
|
56
61
|
}
|
|
57
62
|
|
|
58
63
|
/**
|
|
@@ -79,12 +84,6 @@ export declare class Buffer {
|
|
|
79
84
|
* @param {number} [pageSize] 缓冲区分页大小,扩容时将按分页大小增加
|
|
80
85
|
*/
|
|
81
86
|
constructor(bytes: TypedArray, options?: Options);
|
|
82
|
-
/**
|
|
83
|
-
* @constructor
|
|
84
|
-
* @param {ArrayBuffer} buffer 缓冲区初始缓冲数据
|
|
85
|
-
* @param {number} [pageSize] 缓冲区分页大小,扩容时将按分页大小增加
|
|
86
|
-
*/
|
|
87
|
-
constructor(buffer: ArrayBuffer, options?: Options);
|
|
88
87
|
/**
|
|
89
88
|
* @public
|
|
90
89
|
* @property {number} offset
|
|
@@ -179,7 +178,7 @@ export declare class Buffer {
|
|
|
179
178
|
/**
|
|
180
179
|
* @method writeInt64
|
|
181
180
|
* @description 在缓冲区中写入一个 64 位有符号整数
|
|
182
|
-
* @param {bigint} value 要写入的
|
|
181
|
+
* @param {bigint} value 要写入的 64 位有符号整数
|
|
183
182
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
184
183
|
*/
|
|
185
184
|
writeInt64(value: bigint, littleEndian?: boolean): void;
|
package/cjs/binary.cjs
CHANGED
package/cjs/encoding.cjs
CHANGED
package/cjs/enum.cjs
CHANGED
package/cjs/errors.cjs
CHANGED
package/cjs/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @package @nuintun/buffer
|
|
3
3
|
* @license MIT
|
|
4
|
-
* @version 0.
|
|
4
|
+
* @version 0.7.0
|
|
5
5
|
* @author nuintun <nuintun@qq.com>
|
|
6
6
|
* @description A buffer tool for javascript.
|
|
7
7
|
* @see https://github.com/nuintun/Buffer#readme
|
|
@@ -53,6 +53,8 @@ class Buffer {
|
|
|
53
53
|
#encode;
|
|
54
54
|
// 文本解码方法
|
|
55
55
|
#decode;
|
|
56
|
+
// 字节序
|
|
57
|
+
#littleEndian;
|
|
56
58
|
constructor(input = 0, options = {}) {
|
|
57
59
|
let length;
|
|
58
60
|
let bytes;
|
|
@@ -73,6 +75,7 @@ class Buffer {
|
|
|
73
75
|
this.#encode = options.encode ?? encoding.encode;
|
|
74
76
|
this.#decode = options.decode ?? encoding.decode;
|
|
75
77
|
this.#dataView = new DataView(bytes.buffer);
|
|
78
|
+
this.#littleEndian = options.littleEndian ?? true;
|
|
76
79
|
}
|
|
77
80
|
/**
|
|
78
81
|
* @private
|
|
@@ -230,7 +233,7 @@ class Buffer {
|
|
|
230
233
|
* @param {number} value 要写入的 16 位有符号整数
|
|
231
234
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
232
235
|
*/
|
|
233
|
-
writeInt16(value, littleEndian) {
|
|
236
|
+
writeInt16(value, littleEndian = this.#littleEndian) {
|
|
234
237
|
const offset = this.#getOffset(2 /* SizeOf.INT16 */);
|
|
235
238
|
this.#alloc(offset);
|
|
236
239
|
this.#dataView.setInt16(this.#offset, value, littleEndian);
|
|
@@ -242,7 +245,7 @@ class Buffer {
|
|
|
242
245
|
* @param {number} value 要写入的 16 位无符号整数
|
|
243
246
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
244
247
|
*/
|
|
245
|
-
writeUint16(value, littleEndian) {
|
|
248
|
+
writeUint16(value, littleEndian = this.#littleEndian) {
|
|
246
249
|
const offset = this.#getOffset(2 /* SizeOf.UINT16 */);
|
|
247
250
|
this.#alloc(offset);
|
|
248
251
|
this.#dataView.setUint16(this.#offset, value, littleEndian);
|
|
@@ -254,7 +257,7 @@ class Buffer {
|
|
|
254
257
|
* @param {number} value 要写入的 32 位有符号整数
|
|
255
258
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
256
259
|
*/
|
|
257
|
-
writeInt32(value, littleEndian) {
|
|
260
|
+
writeInt32(value, littleEndian = this.#littleEndian) {
|
|
258
261
|
const offset = this.#getOffset(4 /* SizeOf.INT32 */);
|
|
259
262
|
this.#alloc(offset);
|
|
260
263
|
this.#dataView.setInt32(this.#offset, value, littleEndian);
|
|
@@ -266,7 +269,7 @@ class Buffer {
|
|
|
266
269
|
* @param {number} value 要写入的 32 位无符号整数
|
|
267
270
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
268
271
|
*/
|
|
269
|
-
writeUint32(value, littleEndian) {
|
|
272
|
+
writeUint32(value, littleEndian = this.#littleEndian) {
|
|
270
273
|
const offset = this.#getOffset(4 /* SizeOf.UINT32 */);
|
|
271
274
|
this.#alloc(offset);
|
|
272
275
|
this.#dataView.setUint32(this.#offset, value, littleEndian);
|
|
@@ -275,10 +278,10 @@ class Buffer {
|
|
|
275
278
|
/**
|
|
276
279
|
* @method writeInt64
|
|
277
280
|
* @description 在缓冲区中写入一个 64 位有符号整数
|
|
278
|
-
* @param {bigint} value 要写入的
|
|
281
|
+
* @param {bigint} value 要写入的 64 位有符号整数
|
|
279
282
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
280
283
|
*/
|
|
281
|
-
writeInt64(value, littleEndian) {
|
|
284
|
+
writeInt64(value, littleEndian = this.#littleEndian) {
|
|
282
285
|
const offset = this.#getOffset(8 /* SizeOf.INT64 */);
|
|
283
286
|
this.#alloc(offset);
|
|
284
287
|
this.#dataView.setBigInt64(this.#offset, value, littleEndian);
|
|
@@ -290,7 +293,7 @@ class Buffer {
|
|
|
290
293
|
* @param {bigint} value 要写入的 64 位无符号整数
|
|
291
294
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
292
295
|
*/
|
|
293
|
-
writeUint64(value, littleEndian) {
|
|
296
|
+
writeUint64(value, littleEndian = this.#littleEndian) {
|
|
294
297
|
const offset = this.#getOffset(8 /* SizeOf.UINT64 */);
|
|
295
298
|
this.#alloc(offset);
|
|
296
299
|
this.#dataView.setBigUint64(this.#offset, value, littleEndian);
|
|
@@ -302,7 +305,7 @@ class Buffer {
|
|
|
302
305
|
* @param {number} value 单精度 32 位浮点数
|
|
303
306
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
304
307
|
*/
|
|
305
|
-
writeFloat32(value, littleEndian) {
|
|
308
|
+
writeFloat32(value, littleEndian = this.#littleEndian) {
|
|
306
309
|
const offset = this.#getOffset(4 /* SizeOf.FLOAT32 */);
|
|
307
310
|
this.#alloc(offset);
|
|
308
311
|
this.#dataView.setFloat32(this.#offset, value, littleEndian);
|
|
@@ -314,7 +317,7 @@ class Buffer {
|
|
|
314
317
|
* @param {number} value 双精度 64 位浮点数
|
|
315
318
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
316
319
|
*/
|
|
317
|
-
writeFloat64(value, littleEndian) {
|
|
320
|
+
writeFloat64(value, littleEndian = this.#littleEndian) {
|
|
318
321
|
const offset = this.#getOffset(8 /* SizeOf.FLOAT64 */);
|
|
319
322
|
this.#alloc(offset);
|
|
320
323
|
this.#dataView.setFloat64(this.#offset, value, littleEndian);
|
|
@@ -373,7 +376,7 @@ class Buffer {
|
|
|
373
376
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
374
377
|
* @returns {number} 介于 -32768 和 32767 之间的 16 位有符号整数
|
|
375
378
|
*/
|
|
376
|
-
readInt16(littleEndian) {
|
|
379
|
+
readInt16(littleEndian = this.#littleEndian) {
|
|
377
380
|
const offset = this.#getOffset(2 /* SizeOf.INT16 */);
|
|
378
381
|
this.#assertRead(offset);
|
|
379
382
|
const value = this.#dataView.getInt16(this.#offset, littleEndian);
|
|
@@ -386,7 +389,7 @@ class Buffer {
|
|
|
386
389
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
387
390
|
* @returns {number} 介于 0 和 65535 之间的 16 位无符号整数
|
|
388
391
|
*/
|
|
389
|
-
readUint16(littleEndian) {
|
|
392
|
+
readUint16(littleEndian = this.#littleEndian) {
|
|
390
393
|
const offset = this.#getOffset(2 /* SizeOf.UINT16 */);
|
|
391
394
|
this.#assertRead(offset);
|
|
392
395
|
const value = this.#dataView.getUint16(this.#offset, littleEndian);
|
|
@@ -399,7 +402,7 @@ class Buffer {
|
|
|
399
402
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
400
403
|
* @returns {number} 介于 -2147483648 和 2147483647 之间的 32 位有符号整数
|
|
401
404
|
*/
|
|
402
|
-
readInt32(littleEndian) {
|
|
405
|
+
readInt32(littleEndian = this.#littleEndian) {
|
|
403
406
|
const offset = this.#getOffset(4 /* SizeOf.INT32 */);
|
|
404
407
|
this.#assertRead(offset);
|
|
405
408
|
const value = this.#dataView.getInt32(this.#offset, littleEndian);
|
|
@@ -412,7 +415,7 @@ class Buffer {
|
|
|
412
415
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
413
416
|
* @returns {number} 介于 0 和 4294967295 之间的 32 位无符号整数
|
|
414
417
|
*/
|
|
415
|
-
readUint32(littleEndian) {
|
|
418
|
+
readUint32(littleEndian = this.#littleEndian) {
|
|
416
419
|
const offset = this.#getOffset(4 /* SizeOf.UINT32 */);
|
|
417
420
|
this.#assertRead(offset);
|
|
418
421
|
const value = this.#dataView.getUint32(this.#offset, littleEndian);
|
|
@@ -425,7 +428,7 @@ class Buffer {
|
|
|
425
428
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
426
429
|
* @returns {bigint} 介于 -9223372036854775808 和 9223372036854775807 之间的 64 位有符号整数
|
|
427
430
|
*/
|
|
428
|
-
readInt64(littleEndian) {
|
|
431
|
+
readInt64(littleEndian = this.#littleEndian) {
|
|
429
432
|
const offset = this.#getOffset(8 /* SizeOf.INT64 */);
|
|
430
433
|
this.#assertRead(offset);
|
|
431
434
|
const value = this.#dataView.getBigInt64(this.#offset, littleEndian);
|
|
@@ -438,7 +441,7 @@ class Buffer {
|
|
|
438
441
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
439
442
|
* @returns {bigint} 介于 0 和 18446744073709551615 之间的 64 位无符号整数
|
|
440
443
|
*/
|
|
441
|
-
readUint64(littleEndian) {
|
|
444
|
+
readUint64(littleEndian = this.#littleEndian) {
|
|
442
445
|
const offset = this.#getOffset(8 /* SizeOf.UINT64 */);
|
|
443
446
|
this.#assertRead(offset);
|
|
444
447
|
const value = this.#dataView.getBigUint64(this.#offset, littleEndian);
|
|
@@ -451,7 +454,7 @@ class Buffer {
|
|
|
451
454
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
452
455
|
* @returns {number} 单精度 32 位浮点数
|
|
453
456
|
*/
|
|
454
|
-
readFloat32(littleEndian) {
|
|
457
|
+
readFloat32(littleEndian = this.#littleEndian) {
|
|
455
458
|
const offset = this.#getOffset(4 /* SizeOf.FLOAT32 */);
|
|
456
459
|
this.#assertRead(offset);
|
|
457
460
|
const value = this.#dataView.getFloat32(this.#offset, littleEndian);
|
|
@@ -464,7 +467,7 @@ class Buffer {
|
|
|
464
467
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
465
468
|
* @returns {number} 双精度 64 位浮点数
|
|
466
469
|
*/
|
|
467
|
-
readFloat64(littleEndian) {
|
|
470
|
+
readFloat64(littleEndian = this.#littleEndian) {
|
|
468
471
|
const offset = this.#getOffset(8 /* SizeOf.FLOAT64 */);
|
|
469
472
|
this.#assertRead(offset);
|
|
470
473
|
const value = this.#dataView.getFloat64(this.#offset, littleEndian);
|
|
@@ -493,10 +496,11 @@ class Buffer {
|
|
|
493
496
|
* @returns {Buffer}
|
|
494
497
|
*/
|
|
495
498
|
slice(start, end) {
|
|
496
|
-
return new Buffer(this.bytes.
|
|
499
|
+
return new Buffer(this.bytes.subarray(start, end), {
|
|
497
500
|
encode: this.#encode,
|
|
498
501
|
decode: this.#decode,
|
|
499
|
-
pageSize: this.#pageSize
|
|
502
|
+
pageSize: this.#pageSize,
|
|
503
|
+
littleEndian: this.#littleEndian
|
|
500
504
|
});
|
|
501
505
|
}
|
|
502
506
|
/**
|
package/cjs/index.d.cts
CHANGED
|
@@ -22,6 +22,11 @@ export interface Options {
|
|
|
22
22
|
* @description 文本解码函数
|
|
23
23
|
*/
|
|
24
24
|
decode?: TextDecode;
|
|
25
|
+
/**
|
|
26
|
+
* @property {boolean} [littleEndian]
|
|
27
|
+
* @description 指定默认字节序,默认小端字节序
|
|
28
|
+
*/
|
|
29
|
+
littleEndian?: boolean;
|
|
25
30
|
}
|
|
26
31
|
/**
|
|
27
32
|
* @function endianness
|
|
@@ -141,7 +146,7 @@ export declare class Buffer {
|
|
|
141
146
|
/**
|
|
142
147
|
* @method writeInt64
|
|
143
148
|
* @description 在缓冲区中写入一个 64 位有符号整数
|
|
144
|
-
* @param {bigint} value 要写入的
|
|
149
|
+
* @param {bigint} value 要写入的 64 位有符号整数
|
|
145
150
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
146
151
|
*/
|
|
147
152
|
writeInt64(value: bigint, littleEndian?: boolean): void;
|
package/cjs/utils.cjs
CHANGED
package/esm/binary.js
CHANGED
package/esm/encoding.js
CHANGED
package/esm/enum.js
CHANGED
package/esm/errors.js
CHANGED
package/esm/index.d.ts
CHANGED
|
@@ -22,6 +22,11 @@ export interface Options {
|
|
|
22
22
|
* @description 文本解码函数
|
|
23
23
|
*/
|
|
24
24
|
decode?: TextDecode;
|
|
25
|
+
/**
|
|
26
|
+
* @property {boolean} [littleEndian]
|
|
27
|
+
* @description 指定默认字节序,默认小端字节序
|
|
28
|
+
*/
|
|
29
|
+
littleEndian?: boolean;
|
|
25
30
|
}
|
|
26
31
|
/**
|
|
27
32
|
* @function endianness
|
|
@@ -141,7 +146,7 @@ export declare class Buffer {
|
|
|
141
146
|
/**
|
|
142
147
|
* @method writeInt64
|
|
143
148
|
* @description 在缓冲区中写入一个 64 位有符号整数
|
|
144
|
-
* @param {bigint} value 要写入的
|
|
149
|
+
* @param {bigint} value 要写入的 64 位有符号整数
|
|
145
150
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
146
151
|
*/
|
|
147
152
|
writeInt64(value: bigint, littleEndian?: boolean): void;
|
package/esm/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @package @nuintun/buffer
|
|
3
3
|
* @license MIT
|
|
4
|
-
* @version 0.
|
|
4
|
+
* @version 0.7.0
|
|
5
5
|
* @author nuintun <nuintun@qq.com>
|
|
6
6
|
* @description A buffer tool for javascript.
|
|
7
7
|
* @see https://github.com/nuintun/Buffer#readme
|
|
@@ -51,6 +51,8 @@ class Buffer {
|
|
|
51
51
|
#encode;
|
|
52
52
|
// 文本解码方法
|
|
53
53
|
#decode;
|
|
54
|
+
// 字节序
|
|
55
|
+
#littleEndian;
|
|
54
56
|
constructor(input = 0, options = {}) {
|
|
55
57
|
let length;
|
|
56
58
|
let bytes;
|
|
@@ -71,6 +73,7 @@ class Buffer {
|
|
|
71
73
|
this.#encode = options.encode ?? encode;
|
|
72
74
|
this.#decode = options.decode ?? decode;
|
|
73
75
|
this.#dataView = new DataView(bytes.buffer);
|
|
76
|
+
this.#littleEndian = options.littleEndian ?? true;
|
|
74
77
|
}
|
|
75
78
|
/**
|
|
76
79
|
* @private
|
|
@@ -228,7 +231,7 @@ class Buffer {
|
|
|
228
231
|
* @param {number} value 要写入的 16 位有符号整数
|
|
229
232
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
230
233
|
*/
|
|
231
|
-
writeInt16(value, littleEndian) {
|
|
234
|
+
writeInt16(value, littleEndian = this.#littleEndian) {
|
|
232
235
|
const offset = this.#getOffset(2 /* SizeOf.INT16 */);
|
|
233
236
|
this.#alloc(offset);
|
|
234
237
|
this.#dataView.setInt16(this.#offset, value, littleEndian);
|
|
@@ -240,7 +243,7 @@ class Buffer {
|
|
|
240
243
|
* @param {number} value 要写入的 16 位无符号整数
|
|
241
244
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
242
245
|
*/
|
|
243
|
-
writeUint16(value, littleEndian) {
|
|
246
|
+
writeUint16(value, littleEndian = this.#littleEndian) {
|
|
244
247
|
const offset = this.#getOffset(2 /* SizeOf.UINT16 */);
|
|
245
248
|
this.#alloc(offset);
|
|
246
249
|
this.#dataView.setUint16(this.#offset, value, littleEndian);
|
|
@@ -252,7 +255,7 @@ class Buffer {
|
|
|
252
255
|
* @param {number} value 要写入的 32 位有符号整数
|
|
253
256
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
254
257
|
*/
|
|
255
|
-
writeInt32(value, littleEndian) {
|
|
258
|
+
writeInt32(value, littleEndian = this.#littleEndian) {
|
|
256
259
|
const offset = this.#getOffset(4 /* SizeOf.INT32 */);
|
|
257
260
|
this.#alloc(offset);
|
|
258
261
|
this.#dataView.setInt32(this.#offset, value, littleEndian);
|
|
@@ -264,7 +267,7 @@ class Buffer {
|
|
|
264
267
|
* @param {number} value 要写入的 32 位无符号整数
|
|
265
268
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
266
269
|
*/
|
|
267
|
-
writeUint32(value, littleEndian) {
|
|
270
|
+
writeUint32(value, littleEndian = this.#littleEndian) {
|
|
268
271
|
const offset = this.#getOffset(4 /* SizeOf.UINT32 */);
|
|
269
272
|
this.#alloc(offset);
|
|
270
273
|
this.#dataView.setUint32(this.#offset, value, littleEndian);
|
|
@@ -273,10 +276,10 @@ class Buffer {
|
|
|
273
276
|
/**
|
|
274
277
|
* @method writeInt64
|
|
275
278
|
* @description 在缓冲区中写入一个 64 位有符号整数
|
|
276
|
-
* @param {bigint} value 要写入的
|
|
279
|
+
* @param {bigint} value 要写入的 64 位有符号整数
|
|
277
280
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
278
281
|
*/
|
|
279
|
-
writeInt64(value, littleEndian) {
|
|
282
|
+
writeInt64(value, littleEndian = this.#littleEndian) {
|
|
280
283
|
const offset = this.#getOffset(8 /* SizeOf.INT64 */);
|
|
281
284
|
this.#alloc(offset);
|
|
282
285
|
this.#dataView.setBigInt64(this.#offset, value, littleEndian);
|
|
@@ -288,7 +291,7 @@ class Buffer {
|
|
|
288
291
|
* @param {bigint} value 要写入的 64 位无符号整数
|
|
289
292
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
290
293
|
*/
|
|
291
|
-
writeUint64(value, littleEndian) {
|
|
294
|
+
writeUint64(value, littleEndian = this.#littleEndian) {
|
|
292
295
|
const offset = this.#getOffset(8 /* SizeOf.UINT64 */);
|
|
293
296
|
this.#alloc(offset);
|
|
294
297
|
this.#dataView.setBigUint64(this.#offset, value, littleEndian);
|
|
@@ -300,7 +303,7 @@ class Buffer {
|
|
|
300
303
|
* @param {number} value 单精度 32 位浮点数
|
|
301
304
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
302
305
|
*/
|
|
303
|
-
writeFloat32(value, littleEndian) {
|
|
306
|
+
writeFloat32(value, littleEndian = this.#littleEndian) {
|
|
304
307
|
const offset = this.#getOffset(4 /* SizeOf.FLOAT32 */);
|
|
305
308
|
this.#alloc(offset);
|
|
306
309
|
this.#dataView.setFloat32(this.#offset, value, littleEndian);
|
|
@@ -312,7 +315,7 @@ class Buffer {
|
|
|
312
315
|
* @param {number} value 双精度 64 位浮点数
|
|
313
316
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
314
317
|
*/
|
|
315
|
-
writeFloat64(value, littleEndian) {
|
|
318
|
+
writeFloat64(value, littleEndian = this.#littleEndian) {
|
|
316
319
|
const offset = this.#getOffset(8 /* SizeOf.FLOAT64 */);
|
|
317
320
|
this.#alloc(offset);
|
|
318
321
|
this.#dataView.setFloat64(this.#offset, value, littleEndian);
|
|
@@ -371,7 +374,7 @@ class Buffer {
|
|
|
371
374
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
372
375
|
* @returns {number} 介于 -32768 和 32767 之间的 16 位有符号整数
|
|
373
376
|
*/
|
|
374
|
-
readInt16(littleEndian) {
|
|
377
|
+
readInt16(littleEndian = this.#littleEndian) {
|
|
375
378
|
const offset = this.#getOffset(2 /* SizeOf.INT16 */);
|
|
376
379
|
this.#assertRead(offset);
|
|
377
380
|
const value = this.#dataView.getInt16(this.#offset, littleEndian);
|
|
@@ -384,7 +387,7 @@ class Buffer {
|
|
|
384
387
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
385
388
|
* @returns {number} 介于 0 和 65535 之间的 16 位无符号整数
|
|
386
389
|
*/
|
|
387
|
-
readUint16(littleEndian) {
|
|
390
|
+
readUint16(littleEndian = this.#littleEndian) {
|
|
388
391
|
const offset = this.#getOffset(2 /* SizeOf.UINT16 */);
|
|
389
392
|
this.#assertRead(offset);
|
|
390
393
|
const value = this.#dataView.getUint16(this.#offset, littleEndian);
|
|
@@ -397,7 +400,7 @@ class Buffer {
|
|
|
397
400
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
398
401
|
* @returns {number} 介于 -2147483648 和 2147483647 之间的 32 位有符号整数
|
|
399
402
|
*/
|
|
400
|
-
readInt32(littleEndian) {
|
|
403
|
+
readInt32(littleEndian = this.#littleEndian) {
|
|
401
404
|
const offset = this.#getOffset(4 /* SizeOf.INT32 */);
|
|
402
405
|
this.#assertRead(offset);
|
|
403
406
|
const value = this.#dataView.getInt32(this.#offset, littleEndian);
|
|
@@ -410,7 +413,7 @@ class Buffer {
|
|
|
410
413
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
411
414
|
* @returns {number} 介于 0 和 4294967295 之间的 32 位无符号整数
|
|
412
415
|
*/
|
|
413
|
-
readUint32(littleEndian) {
|
|
416
|
+
readUint32(littleEndian = this.#littleEndian) {
|
|
414
417
|
const offset = this.#getOffset(4 /* SizeOf.UINT32 */);
|
|
415
418
|
this.#assertRead(offset);
|
|
416
419
|
const value = this.#dataView.getUint32(this.#offset, littleEndian);
|
|
@@ -423,7 +426,7 @@ class Buffer {
|
|
|
423
426
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
424
427
|
* @returns {bigint} 介于 -9223372036854775808 和 9223372036854775807 之间的 64 位有符号整数
|
|
425
428
|
*/
|
|
426
|
-
readInt64(littleEndian) {
|
|
429
|
+
readInt64(littleEndian = this.#littleEndian) {
|
|
427
430
|
const offset = this.#getOffset(8 /* SizeOf.INT64 */);
|
|
428
431
|
this.#assertRead(offset);
|
|
429
432
|
const value = this.#dataView.getBigInt64(this.#offset, littleEndian);
|
|
@@ -436,7 +439,7 @@ class Buffer {
|
|
|
436
439
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
437
440
|
* @returns {bigint} 介于 0 和 18446744073709551615 之间的 64 位无符号整数
|
|
438
441
|
*/
|
|
439
|
-
readUint64(littleEndian) {
|
|
442
|
+
readUint64(littleEndian = this.#littleEndian) {
|
|
440
443
|
const offset = this.#getOffset(8 /* SizeOf.UINT64 */);
|
|
441
444
|
this.#assertRead(offset);
|
|
442
445
|
const value = this.#dataView.getBigUint64(this.#offset, littleEndian);
|
|
@@ -449,7 +452,7 @@ class Buffer {
|
|
|
449
452
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
450
453
|
* @returns {number} 单精度 32 位浮点数
|
|
451
454
|
*/
|
|
452
|
-
readFloat32(littleEndian) {
|
|
455
|
+
readFloat32(littleEndian = this.#littleEndian) {
|
|
453
456
|
const offset = this.#getOffset(4 /* SizeOf.FLOAT32 */);
|
|
454
457
|
this.#assertRead(offset);
|
|
455
458
|
const value = this.#dataView.getFloat32(this.#offset, littleEndian);
|
|
@@ -462,7 +465,7 @@ class Buffer {
|
|
|
462
465
|
* @param {boolean} [littleEndian] 是否为小端字节序
|
|
463
466
|
* @returns {number} 双精度 64 位浮点数
|
|
464
467
|
*/
|
|
465
|
-
readFloat64(littleEndian) {
|
|
468
|
+
readFloat64(littleEndian = this.#littleEndian) {
|
|
466
469
|
const offset = this.#getOffset(8 /* SizeOf.FLOAT64 */);
|
|
467
470
|
this.#assertRead(offset);
|
|
468
471
|
const value = this.#dataView.getFloat64(this.#offset, littleEndian);
|
|
@@ -491,10 +494,11 @@ class Buffer {
|
|
|
491
494
|
* @returns {Buffer}
|
|
492
495
|
*/
|
|
493
496
|
slice(start, end) {
|
|
494
|
-
return new Buffer(this.bytes.
|
|
497
|
+
return new Buffer(this.bytes.subarray(start, end), {
|
|
495
498
|
encode: this.#encode,
|
|
496
499
|
decode: this.#decode,
|
|
497
|
-
pageSize: this.#pageSize
|
|
500
|
+
pageSize: this.#pageSize,
|
|
501
|
+
littleEndian: this.#littleEndian
|
|
498
502
|
});
|
|
499
503
|
}
|
|
500
504
|
/**
|
package/esm/utils.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nuintun/buffer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "A buffer tool for javascript.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"magic-string": "^0.30.17",
|
|
42
42
|
"prettier": "^3.6.2",
|
|
43
43
|
"rimraf": "^6.0.1",
|
|
44
|
-
"rollup": "^4.
|
|
44
|
+
"rollup": "^4.46.2",
|
|
45
45
|
"typescript": "^5.8.3"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|