From bde1557408033fb507cd3e2fb96d7b96a4b2b617 Mon Sep 17 00:00:00 2001 From: yutent Date: Thu, 30 May 2024 12:51:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 48 ++++++++++++++++++++++++++++++++---------------- package.json | 2 +- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index ba75e45..302534b 100644 --- a/README.md +++ b/README.md @@ -1,63 +1,79 @@ ## 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) - ### 文档 -> 以下方法的encoding, 如无特殊说明, 均只支持`utf8`(默认),`base64`, `hex`, `binary`4种。 + +> 以下方法的 encoding, 如无特殊说明, 均只支持`utf8`(默认),`base64`, `hex`, `binary`4 种。 #### 静态方法 ##### Buffer.from(data, offsetOrEncoding, end) -与`Node.js`版基本一致, 支持从数组/字符串等值中创建Buffer对象。 +与`Node.js`版基本一致, 支持从数组/字符串等值中创建 Buffer 对象。 ##### Buffer.alloc(len, str, encoding) -与`Node.js`版基本一致, 创建指定字节长度的Buffer, 同时填充内容。 +与`Node.js`版基本一致, 创建指定字节长度的 Buffer, 同时填充内容。 ##### Buffer.concat(list, totalLength) -与`Node.js`版基本一致, 合并多个Buffer对象, 可指定总字节长度。 +与`Node.js`版基本一致, 合并多个 Buffer 对象, 可指定总字节长度。 ##### Buffer.isBuffer(target) -与`Node.js`版基本一致, 判断指定值是否为Buffer对象。 +与`Node.js`版基本一致, 判断指定值是否为 Buffer 对象。 ##### Buffer.compare(buf1, buf2) -与`Node.js`版基本一致, 比较2个Buffer对象, 通常用于排序中, 返回`-1/0/1`。 + +与`Node.js`版基本一致, 比较 2 个 Buffer 对象, 通常用于排序中, 返回`-1/0/1`。 ##### Buffer.byteLength(data, encoding) -与`Node.js`版基本一致, 返回给定内容的字节长度, 内容可以是任意类型。 +与`Node.js`版基本一致, 返回给定内容的字节长度, 内容可以是任意类型。 #### 实例方法 ##### .toString(encoding, start, end) -与`Node.js`版基本一致, 将`Buffer`对象转为字符串。 其中`encoding`支持`utf8`(默认),`base64`, `hex`, `binary`4种。 +与`Node.js`版基本一致, 将`Buffer`对象转为字符串。 其中`encoding`支持`utf8`(默认),`base64`, `hex`, `binary`4 种。 ##### .fill(val, start, end, encoding) -与`Node.js`版基本一致, 向Buffer对象中填充内容, 可填充到指定位置。 +与`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 + +与`Node.js`版基本一致, 判断给定内容是否包含在内, 可从指定位置开始判断, 返回`true/false`。 + +### 其他操作 + +Buffer 对象, 可以直接用于创建文件对象, 如下 + +```js +let file = new File([Buffer.from('这是一段文本')], 'demo.txt', { + type: 'text/plain' +}) + +console.log(file) + +``` +但是由于浏览器端暂不支持非异步的方法将`Blob/File`对象转成`ArrayBuffer`, 所以暂时不支持从`Blob/File`中创建`Buffer`对象. \ No newline at end of file diff --git a/package.json b/package.json index d38257b..451b1f1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bytedo/buffer", - "version": "1.0.0", + "version": "1.0.1", "type": "module", "main": "dist/index.js", "files": [