A module that implements window.atob
and window.btoa
according to the WHATWG spec. The code is originally from w3c/web-platform-tests.
Compatibility: io.js (all major versions), browsers (using browserify or webpack)
Install with npm
:
npm install abab
const btoa = require('abab').btoa;
btoa('Hello, world!'); // 'SGVsbG8sIHdvcmxkIQ=='
const atob = require('abab').atob;
atob('SGVsbG8sIHdvcmxkIQ=='); // 'Hello, world!'
Per the spec, btoa
will accept strings "containing only characters in the range U+0000
to U+00FF
." If passed a string with characters above U+00FF
, btoa
will return null
. If atob
is passed a string that is not base64-valid, it will also return null
. In both cases when null
is returned, the spec calls for throwing a DOMException
of type InvalidCharacterError
.
- See the PR checklist
- If we can set up browser testing (Sauce?), would be cool to test against every browser's implementation of atob/btoa