ab64
v0.1.1
Published
The smallest and fastest Base64 implementation in JavaScript
Downloads
143
Maintainers
Readme
ab64
The smallest and fastest Base64 implementation in JavaScript based on atob
and btoa
from browser native or Buffer
from node
TOC
Usage
Install
# pnpm
pnpm add ab64
# yarn
yarn add ab64
# npm
npm i ab64
API
Basic
import { decode, decodeUrl, encode, encodeUrl } from 'ab64'
encode('Hello World!') // SGVsbG8gV29ybGQh
encode('dankogai') // ZGFua29nYWk=
encodeUrl('dankogai') // ZGFua29nYWk
encode('小飼弾') // 5bCP6aO85by+
encodeUrl('小飼弾') // 5bCP6aO85by-
decode('SGVsbG8gV29ybGQh') // Hello World!
decode('ZGFua29nYWk=') // dankogai
decodeUrl('ZGFua29nYWk') // dankogai
decode('5bCP6aO85by+') // 小飼弾
decodeUrl('5bCP6aO85by-') // 小飼弾
Polyfill
If you're running on a non Node environment where atob
and btoa
could be unavailable, you may want to include the polyfill
manually
import 'ab64/polyfill'
// same as above then
Ponyfill
atob
and btoa
are also available exported as ab64/ponyfill
which does not polyfill by default
import { atob, btoa } from 'ab64/ponyfill'
// same as browser native
MiniApp (WeChat)
Since mini app (from wechat) does not support global polyfill, so you have to use the separate mini-app
entry instead which uses the above ponyfill inside
import { decode, decodeUrl, encode, encodeUrl } from 'ab64/mini-app'
Or you should add an alias mapping ab64
to ab64/mini-app
in your rollup
/vite
/webpack
configuration
Sponsors
| 1stG | RxTS | UnTS | | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | | | | |
Backers
| 1stG | RxTS | UnTS | | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | | | | |
Changelog
Detailed changes for each release are documented in CHANGELOG.md.