Skip to content
/ ab64 Public
generated from un-ts/lib-boilerplate

The smallest and fastest Base64 implementation in JavaScript based on `atob` and `btoa` from browser native or `Buffer` from node

License

Notifications You must be signed in to change notification settings

un-ts/ab64

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ab64

GitHub Actions Codecov Language grade: JavaScript type-coverage npm GitHub Release

Conventional Commits Renovate enabled JavaScript Style Guide Code Style: Prettier changesets

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
1stG Open Collective backers and sponsors RxTS Open Collective backers and sponsors UnTS Open Collective backers and sponsors

Backers

1stG RxTS UnTS
1stG Open Collective backers and sponsors RxTS Open Collective backers and sponsors UnTS Open Collective backers and sponsors

Changelog

Detailed changes for each release are documented in CHANGELOG.md.

License

MIT © JounQin@1stG.me