readme.md
 1  # Buffer From
 2  
 3  A [ponyfill](https://ponyfill.com) for `Buffer.from`, uses native implementation if available.
 4  
 5  ## Installation
 6  
 7  ```sh
 8  npm install --save buffer-from
 9  ```
10  
11  ## Usage
12  
13  ```js
14  const bufferFrom = require('buffer-from')
15  
16  console.log(bufferFrom([1, 2, 3, 4]))
17  //=> <Buffer 01 02 03 04>
18  
19  const arr = new Uint8Array([1, 2, 3, 4])
20  console.log(bufferFrom(arr.buffer, 1, 2))
21  //=> <Buffer 02 03>
22  
23  console.log(bufferFrom('test', 'utf8'))
24  //=> <Buffer 74 65 73 74>
25  
26  const buf = bufferFrom('test')
27  console.log(bufferFrom(buf))
28  //=> <Buffer 74 65 73 74>
29  ```
30  
31  ## API
32  
33  ### bufferFrom(array)
34  
35  - `array` &lt;Array&gt;
36  
37  Allocates a new `Buffer` using an `array` of octets.
38  
39  ### bufferFrom(arrayBuffer[, byteOffset[, length]])
40  
41  - `arrayBuffer` &lt;ArrayBuffer&gt; The `.buffer` property of a TypedArray or ArrayBuffer
42  - `byteOffset` &lt;Integer&gt; Where to start copying from `arrayBuffer`. **Default:** `0`
43  - `length` &lt;Integer&gt; How many bytes to copy from `arrayBuffer`. **Default:** `arrayBuffer.length - byteOffset`
44  
45  When passed a reference to the `.buffer` property of a TypedArray instance, the
46  newly created `Buffer` will share the same allocated memory as the TypedArray.
47  
48  The optional `byteOffset` and `length` arguments specify a memory range within
49  the `arrayBuffer` that will be shared by the `Buffer`.
50  
51  ### bufferFrom(buffer)
52  
53  - `buffer` &lt;Buffer&gt; An existing `Buffer` to copy data from
54  
55  Copies the passed `buffer` data onto a new `Buffer` instance.
56  
57  ### bufferFrom(string[, encoding])
58  
59  - `string` &lt;String&gt; A string to encode.
60  - `encoding` &lt;String&gt; The encoding of `string`. **Default:** `'utf8'`
61  
62  Creates a new `Buffer` containing the given JavaScript string `string`. If
63  provided, the `encoding` parameter identifies the character encoding of
64  `string`.
65  
66  ## See also
67  
68  - [buffer-alloc](https://github.com/LinusU/buffer-alloc) A ponyfill for `Buffer.alloc`
69  - [buffer-alloc-unsafe](https://github.com/LinusU/buffer-alloc-unsafe) A ponyfill for `Buffer.allocUnsafe`