@nuintun/buffer 0.2.4 → 0.3.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/cjs/Binary.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.2.4
4
+ * @version 0.3.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
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.2.4
4
+ * @version 0.3.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
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.2.4
4
+ * @version 0.3.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
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.2.4
4
+ * @version 0.3.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.2.4
4
+ * @version 0.3.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.2.4
4
+ * @version 0.3.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
@@ -61,7 +61,7 @@ class Buffer {
61
61
  this.#length = input.length;
62
62
  this.#dataView = new DataView(input.buffer);
63
63
  } else {
64
- const bytes = new Uint8Array(utils.calcBufferLength(input, pageSize));
64
+ const bytes = utils.makeUint8Array(input, pageSize);
65
65
  this.#bytes = bytes;
66
66
  this.#length = input;
67
67
  this.#dataView = new DataView(bytes.buffer);
@@ -106,7 +106,7 @@ class Buffer {
106
106
  length += this.#offset;
107
107
  const bytes = this.#bytes;
108
108
  if (length > bytes.length) {
109
- const newBytes = new Uint8Array(utils.calcBufferLength(length, this.#pageSize));
109
+ const newBytes = utils.makeUint8Array(length, this.#pageSize);
110
110
  newBytes.set(bytes);
111
111
  this.#bytes = newBytes;
112
112
  this.#dataView = new DataView(newBytes.buffer);
@@ -175,7 +175,7 @@ class Buffer {
175
175
  * @returns {ArrayBuffer}
176
176
  */
177
177
  get buffer() {
178
- return this.#bytes.buffer.slice(0, this.#length);
178
+ return this.bytes.buffer;
179
179
  }
180
180
  /**
181
181
  * @public
@@ -184,7 +184,7 @@ class Buffer {
184
184
  * @returns {Uint8Array}
185
185
  */
186
186
  get bytes() {
187
- return this.#bytes.slice(0, this.#length);
187
+ return this.#bytes.subarray(0, this.#length);
188
188
  }
189
189
  /**
190
190
  * @public
package/cjs/utils.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.2.4
4
+ * @version 0.3.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
@@ -13,19 +13,17 @@
13
13
  * @module utils
14
14
  */
15
15
  /**
16
- * @function calcBufferLength
17
- * @description 计算适合的 Buffer 长度
18
- * @param {number} length 数据字节总大小
16
+ * @function makeUint8Array
17
+ * @description 创建一个合适长度的 Uint8Array
18
+ * @param {number} byteLength 数据字节总大小
19
19
  * @param {number} pageSize 缓冲区页大小
20
- * @returns {number}
20
+ * @returns {Uint8Array}
21
21
  */
22
- function calcBufferLength(length, pageSize) {
23
- if (length > pageSize) {
24
- const pages = Math.ceil(length / pageSize);
25
- return pages * pageSize;
26
- } else {
27
- return length;
22
+ function makeUint8Array(byteLength, pageSize) {
23
+ if (byteLength > pageSize) {
24
+ return new Uint8Array(Math.ceil(byteLength / pageSize) * pageSize);
28
25
  }
26
+ return new Uint8Array(pageSize);
29
27
  }
30
28
 
31
- exports.calcBufferLength = calcBufferLength;
29
+ exports.makeUint8Array = makeUint8Array;
package/cjs/utils.d.cts CHANGED
@@ -2,10 +2,10 @@
2
2
  * @module utils
3
3
  */
4
4
  /**
5
- * @function calcBufferLength
6
- * @description 计算适合的 Buffer 长度
7
- * @param {number} length 数据字节总大小
5
+ * @function makeUint8Array
6
+ * @description 创建一个合适长度的 Uint8Array
7
+ * @param {number} byteLength 数据字节总大小
8
8
  * @param {number} pageSize 缓冲区页大小
9
- * @returns {number}
9
+ * @returns {Uint8Array}
10
10
  */
11
- export declare function calcBufferLength(length: number, pageSize: number): number;
11
+ export declare function makeUint8Array(byteLength: 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.2.4
4
+ * @version 0.3.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
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.2.4
4
+ * @version 0.3.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
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.2.4
4
+ * @version 0.3.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
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.2.4
4
+ * @version 0.3.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.2.4
4
+ * @version 0.3.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.js CHANGED
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.2.4
4
+ * @version 0.3.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
8
8
  */
9
9
 
10
- import { calcBufferLength } from './utils.js';
10
+ import { makeUint8Array } from './utils.js';
11
11
  import { mapping } from './Binary.js';
12
12
  import { unknownEndianness, readOverflow, offsetInvalid, offsetOverflow, lengthInvalid } from './errors.js';
13
13
  import { encode, decode } from './Encoding/index.js';
@@ -59,7 +59,7 @@ class Buffer {
59
59
  this.#length = input.length;
60
60
  this.#dataView = new DataView(input.buffer);
61
61
  } else {
62
- const bytes = new Uint8Array(calcBufferLength(input, pageSize));
62
+ const bytes = makeUint8Array(input, pageSize);
63
63
  this.#bytes = bytes;
64
64
  this.#length = input;
65
65
  this.#dataView = new DataView(bytes.buffer);
@@ -104,7 +104,7 @@ class Buffer {
104
104
  length += this.#offset;
105
105
  const bytes = this.#bytes;
106
106
  if (length > bytes.length) {
107
- const newBytes = new Uint8Array(calcBufferLength(length, this.#pageSize));
107
+ const newBytes = makeUint8Array(length, this.#pageSize);
108
108
  newBytes.set(bytes);
109
109
  this.#bytes = newBytes;
110
110
  this.#dataView = new DataView(newBytes.buffer);
@@ -173,7 +173,7 @@ class Buffer {
173
173
  * @returns {ArrayBuffer}
174
174
  */
175
175
  get buffer() {
176
- return this.#bytes.buffer.slice(0, this.#length);
176
+ return this.bytes.buffer;
177
177
  }
178
178
  /**
179
179
  * @public
@@ -182,7 +182,7 @@ class Buffer {
182
182
  * @returns {Uint8Array}
183
183
  */
184
184
  get bytes() {
185
- return this.#bytes.slice(0, this.#length);
185
+ return this.#bytes.subarray(0, this.#length);
186
186
  }
187
187
  /**
188
188
  * @public
package/esm/utils.d.ts CHANGED
@@ -2,10 +2,10 @@
2
2
  * @module utils
3
3
  */
4
4
  /**
5
- * @function calcBufferLength
6
- * @description 计算适合的 Buffer 长度
7
- * @param {number} length 数据字节总大小
5
+ * @function makeUint8Array
6
+ * @description 创建一个合适长度的 Uint8Array
7
+ * @param {number} byteLength 数据字节总大小
8
8
  * @param {number} pageSize 缓冲区页大小
9
- * @returns {number}
9
+ * @returns {Uint8Array}
10
10
  */
11
- export declare function calcBufferLength(length: number, pageSize: number): number;
11
+ export declare function makeUint8Array(byteLength: number, pageSize: number): Uint8Array;
package/esm/utils.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @package @nuintun/buffer
3
3
  * @license MIT
4
- * @version 0.2.4
4
+ * @version 0.3.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
@@ -11,19 +11,17 @@
11
11
  * @module utils
12
12
  */
13
13
  /**
14
- * @function calcBufferLength
15
- * @description 计算适合的 Buffer 长度
16
- * @param {number} length 数据字节总大小
14
+ * @function makeUint8Array
15
+ * @description 创建一个合适长度的 Uint8Array
16
+ * @param {number} byteLength 数据字节总大小
17
17
  * @param {number} pageSize 缓冲区页大小
18
- * @returns {number}
18
+ * @returns {Uint8Array}
19
19
  */
20
- function calcBufferLength(length, pageSize) {
21
- if (length > pageSize) {
22
- const pages = Math.ceil(length / pageSize);
23
- return pages * pageSize;
24
- } else {
25
- return length;
20
+ function makeUint8Array(byteLength, pageSize) {
21
+ if (byteLength > pageSize) {
22
+ return new Uint8Array(Math.ceil(byteLength / pageSize) * pageSize);
26
23
  }
24
+ return new Uint8Array(pageSize);
27
25
  }
28
26
 
29
- export { calcBufferLength };
27
+ export { makeUint8Array };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuintun/buffer",
3
- "version": "0.2.4",
3
+ "version": "0.3.0",
4
4
  "description": "A buffer tool for javascript.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -31,11 +31,23 @@
31
31
  "url": "https://github.com/nuintun/Buffer/issues"
32
32
  },
33
33
  "homepage": "https://github.com/nuintun/Buffer#readme",
34
+ "dependencies": {
35
+ "tslib": "^2.8.1"
36
+ },
37
+ "devDependencies": {
38
+ "@rollup/plugin-node-resolve": "^16.0.1",
39
+ "@rollup/plugin-typescript": "^12.1.4",
40
+ "dts-paths": "^1.1.10",
41
+ "magic-string": "^0.30.17",
42
+ "prettier": "^3.6.2",
43
+ "rimraf": "^6.0.1",
44
+ "rollup": "^4.45.1",
45
+ "typescript": "^5.8.3"
46
+ },
34
47
  "scripts": {
35
48
  "lint": "tsc --noEmit",
36
49
  "test": "node tests/index.js",
37
50
  "clean": "node tools/clean.js",
38
- "prepublishOnly": "pnpm build",
39
51
  "build:cjs": "rollup -c tools/rollup.cjs.js",
40
52
  "build:esm": "rollup -c tools/rollup.esm.js",
41
53
  "build:fix-types": "node tools/fix-types.js",
@@ -44,18 +56,5 @@
44
56
  "format": "prettier --write . --ignore-path .prettierignore",
45
57
  "build:main": "pnpm build:cjs && pnpm build:esm && pnpm build:fix-types",
46
58
  "build": "pnpm clean && pnpm build:main && pnpm build:tests && pnpm build:examples && pnpm format"
47
- },
48
- "dependencies": {
49
- "tslib": "^2.8.1"
50
- },
51
- "devDependencies": {
52
- "@rollup/plugin-node-resolve": "^16.0.1",
53
- "@rollup/plugin-typescript": "^12.1.2",
54
- "dts-paths": "^1.1.6",
55
- "magic-string": "^0.30.17",
56
- "prettier": "^3.5.3",
57
- "rimraf": "^6.0.1",
58
- "rollup": "^4.40.2",
59
- "typescript": "^5.8.3"
60
59
  }
61
- }
60
+ }