Package Exports
- abab
- abab/index.js
- abab/lib/atob
- abab/lib/atob.js
- abab/lib/btoa
- abab/lib/btoa.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (abab) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
abab

A JavaScript module that implements window.atob
and window.btoa
according the forgiving-base64 algorithm in the Infra Standard. The original code was forked from w3c/web-platform-tests.
Compatibility: Node.js version 3+ and all major browsers.
Install with npm
:
npm install abab
API
btoa
(base64 encode)
const { btoa } = require('abab');
btoa('Hello, world!'); // 'SGVsbG8sIHdvcmxkIQ=='
atob
(base64 decode)
const { atob } = require('abab');
atob('SGVsbG8sIHdvcmxkIQ=='); // 'Hello, world!'
Valid characters
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
.
Browsers
If you want to include just one of the methods to save bytes in your client-side code, you can require
the desired module directly.
const atob = require('abab/lib/atob');
const btoa = require('abab/lib/btoa');
Development
If you're submitting a PR or deploying to npm, please use the checklists in CONTRIBUTING.md.
Remembering what atob
and btoa
stand for
Base64 comes from IETF RFC 4648 (2006).
btoa
, the encoder function, stands for binary to ASCII, meaning it converts any binary input into a subset of ASCII (Base64).atob
, the decoder function, converts ASCII (or Base64) to its original binary format.