114 lines
2.6 KiB
Markdown
114 lines
2.6 KiB
Markdown
|
# libbase64
|
||
|
|
||
|
Encode and decode base64 strings.
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
Install with npm
|
||
|
|
||
|
npm install libbase64
|
||
|
|
||
|
Require in your script
|
||
|
|
||
|
```javascript
|
||
|
const libbase64 = require('libbase64');
|
||
|
```
|
||
|
|
||
|
### Encode values
|
||
|
|
||
|
Encode Buffer objects or unicode strings with
|
||
|
|
||
|
libbase64.encode(val) → String
|
||
|
|
||
|
Where
|
||
|
|
||
|
- **val** is a Buffer or an unicode string
|
||
|
|
||
|
**Example**
|
||
|
|
||
|
```javascript
|
||
|
libbase64.encode('jõgeva');
|
||
|
// asO1Z2V2YQ==
|
||
|
```
|
||
|
|
||
|
### Wrap encoded values
|
||
|
|
||
|
To enforce soft line breaks on lines longer than selected amount of characters, use `wrap`
|
||
|
|
||
|
libbase64.wrap(str[, lineLength]) → String
|
||
|
|
||
|
Where
|
||
|
|
||
|
- **str** is a base64 encoded string
|
||
|
- **lineLength** (defaults to 76) is the maximum allowed line length
|
||
|
|
||
|
**Example**
|
||
|
|
||
|
```javascript
|
||
|
libbase64.wrap('asO1Z2V2asO1Z2V2asO1Z2V2YQ==', 10);
|
||
|
// asO1Z2V2as\r\n
|
||
|
// O1Z2V2asO1\r\n
|
||
|
// Z2V2YQ==
|
||
|
```
|
||
|
|
||
|
### Transform Streams
|
||
|
|
||
|
`libbase64` makes it possible to encode and decode streams with `libbase64.Encoder` and `libbase64.Decoder` constructors.
|
||
|
|
||
|
### Encoder Stream
|
||
|
|
||
|
Create new Encoder Stream with
|
||
|
|
||
|
const encoder = new libbase64.Encoder([options])
|
||
|
|
||
|
Where
|
||
|
|
||
|
- **options** is the optional stream options object
|
||
|
- **options.lineLength** (Number) if you want to use any other line length than the default 76
|
||
|
characters (or set to `false` to turn the soft wrapping off completely)
|
||
|
- **options.skipStartBytes** (Number) Optional. How many bytes to skip from output (default to 0)
|
||
|
- **options.limitOutbutBytes** (Number) Optional. How many bytes to return (defaults to all bytes)
|
||
|
- **options.startPadding** (String) Optional. Fills first line with provided padding string. Usually goes together with skipStartBytes to get line folding correct.
|
||
|
|
||
|
**Example**
|
||
|
|
||
|
The following example script reads in a file, encodes it to base64 and saves the output to a file.
|
||
|
|
||
|
```javascript
|
||
|
const libbase64 = require('libbase64');
|
||
|
const fs = require('fs');
|
||
|
const source = fs.createReadStream('source.txt');
|
||
|
const encoded = fs.createReadStream('encoded.txt');
|
||
|
const encoder = new libbase64.Encoder();
|
||
|
|
||
|
source.pipe(encoder).pipe(encoded);
|
||
|
```
|
||
|
|
||
|
### Decoder Stream
|
||
|
|
||
|
Create new Decoder Stream with
|
||
|
|
||
|
const decoder = new libbase64.Decoder([options])
|
||
|
|
||
|
Where
|
||
|
|
||
|
- **options** is the optional stream options object
|
||
|
|
||
|
**Example**
|
||
|
|
||
|
The following example script reads in a file in base64 encoding, decodes it and saves the output to a file.
|
||
|
|
||
|
```javascript
|
||
|
const libbase64 = require('libbase64');
|
||
|
const fs = require('fs');
|
||
|
const encoded = fs.createReadStream('encoded.txt');
|
||
|
const dest = fs.createReadStream('dest.txt');
|
||
|
const decoder = new libbase64.Decoder();
|
||
|
|
||
|
encoded.pipe(decoder).pipe(dest);
|
||
|
```
|
||
|
|
||
|
## License
|
||
|
|
||
|
**MIT**
|