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**
...