@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 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 要写入的 32 位有符号整数
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
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.6.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
package/cjs/encoding.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.6.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
package/cjs/enum.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.6.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
package/cjs/errors.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.6.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
package/cjs/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.6.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 要写入的 32 位有符号整数
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.slice(start, end), {
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 要写入的 32 位有符号整数
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
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.6.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
package/esm/binary.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.6.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
package/esm/encoding.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.6.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
package/esm/enum.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.6.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
package/esm/errors.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.6.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
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 要写入的 32 位有符号整数
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.6.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 要写入的 32 位有符号整数
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.slice(start, end), {
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
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.6.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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuintun/buffer",
3
- "version": "0.6.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.45.1",
44
+ "rollup": "^4.46.2",
45
45
  "typescript": "^5.8.3"
46
46
  },
47
47
  "scripts": {