function decode(str) {
return new Buffer(this.unescape(str), 'base64').toString();
}...
```js
var base64url = require('base64-url');
base64url.encode('Node.js is awesome.');
// returns Tm9kZS5qcyBpcyBhd2Vzb21lLg
base64url.decode('Tm9kZS5qcyBpcyBhd2Vzb21lLg');
// returns Node.js is awesome.
base64url.escape('This+is/goingto+escape==');
// returns This-is_goingto-escape
base64url.unescape('This-is_goingto-escape');
// returns This+is/goingto+escape==
...function encode(str) {
return this.escape(new Buffer(str).toString('base64'));
}...
## API
```js
var base64url = require('base64-url');
base64url.encode('Node.js is awesome.');
// returns Tm9kZS5qcyBpcyBhd2Vzb21lLg
base64url.decode('Tm9kZS5qcyBpcyBhd2Vzb21lLg');
// returns Node.js is awesome.
base64url.escape('This+is/goingto+escape==');
// returns This-is_goingto-escape
...function escape(str) {
return str.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=/g, '');
}...
base64url.encode('Node.js is awesome.');
// returns Tm9kZS5qcyBpcyBhd2Vzb21lLg
base64url.decode('Tm9kZS5qcyBpcyBhd2Vzb21lLg');
// returns Node.js is awesome.
base64url.escape('This+is/goingto+escape==');
// returns This-is_goingto-escape
base64url.unescape('This-is_goingto-escape');
// returns This+is/goingto+escape==
```
...function unescape(str) {
return (str + '==='.slice((str.length + 3) % 4))
.replace(/\-/g, '+')
.replace(/_/g, '/');
}...
base64url.decode('Tm9kZS5qcyBpcyBhd2Vzb21lLg');
// returns Node.js is awesome.
base64url.escape('This+is/goingto+escape==');
// returns This-is_goingto-escape
base64url.unescape('This-is_goingto-escape');
// returns This+is/goingto+escape==
```
## Development
**this project has been set up with a precommit that forces you to follow a code style, no jshint issues and 100% of code coverage
before commit**
...