diff --git a/README.md b/README.md index e1c122f..ba75e45 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,63 @@ ## Buffer -浏览器版的Buffer对象模拟, 提供近似Node.js的BUffer对象的API +浏览器版的Buffer对象模拟, 提供近似Node.js的BUffer对象的API。 -[![@bytedo/buffer](https://img.shields.io/npm/v/@bytedo/buffer.svg)](https://www.npmjs.com/package/@bytedo/buffer) \ No newline at end of file +[![@bytedo/buffer](https://img.shields.io/npm/v/@bytedo/buffer.svg)](https://www.npmjs.com/package/@bytedo/buffer) + + +### 文档 +> 以下方法的encoding, 如无特殊说明, 均只支持`utf8`(默认),`base64`, `hex`, `binary`4种。 + +#### 静态方法 + +##### Buffer.from(data, offsetOrEncoding, end) +与`Node.js`版基本一致, 支持从数组/字符串等值中创建Buffer对象。 + + +##### Buffer.alloc(len, str, encoding) +与`Node.js`版基本一致, 创建指定字节长度的Buffer, 同时填充内容。 + + +##### Buffer.concat(list, totalLength) +与`Node.js`版基本一致, 合并多个Buffer对象, 可指定总字节长度。 + + +##### Buffer.isBuffer(target) +与`Node.js`版基本一致, 判断指定值是否为Buffer对象。 + + +##### Buffer.compare(buf1, buf2) +与`Node.js`版基本一致, 比较2个Buffer对象, 通常用于排序中, 返回`-1/0/1`。 + +##### Buffer.byteLength(data, encoding) +与`Node.js`版基本一致, 返回给定内容的字节长度, 内容可以是任意类型。 + + +#### 实例方法 + +##### .toString(encoding, start, end) +与`Node.js`版基本一致, 将`Buffer`对象转为字符串。 其中`encoding`支持`utf8`(默认),`base64`, `hex`, `binary`4种。 + + +##### .fill(val, start, end, encoding) +与`Node.js`版基本一致, 向Buffer对象中填充内容, 可填充到指定位置。 + + +##### .copy(target, targetStart, sourceStart, sourceEnd) +向目标对象中复制当前对象, 注意, 该方法改变的不是自身, 是传入的对象, 这个行为与`Node.js`版一致。 + + +##### .write(val, offset, len, encoding) +与`Node.js`版基本一致, 指定位置写入数据, 可以是任意类型。 + + +##### .compare(buf) +与静态方法的功能一样, 只是这里比较的对象是自身, 返回`-1/0/1`。 + + +##### .equals(buf) +与`Node.js`版基本一致, 判断与给定的对象是否一致, 返回`true/false`。 + +##### .includes(data, offset, encoding) +与`Node.js`版基本一致, 判断给定内容是否包含在内, 可从指定位置开始判断, 返回`true/false`。 \ No newline at end of file diff --git a/build.js b/build.js index 88f7b05..e7bc2c6 100644 --- a/build.js +++ b/build.js @@ -9,7 +9,7 @@ import Es from 'esbuild' Es.build({ entryPoints: ['src/index.js'], outdir: 'dist', - target: 'es2017', + target: 'es2020', format: 'esm', bundle: true, minify: true diff --git a/src/index.js b/src/index.js index ec3665b..c58947e 100644 --- a/src/index.js +++ b/src/index.js @@ -109,8 +109,8 @@ export default class Buffer extends Uint8Array { /** * 合并多个Buffer对象 */ - static concat(list, encoding) { - let len = sum(list) + static concat(list, totalLength) { + let len = totalLength || sum(list) let buf = Buffer.alloc(len) let offset = 0