0.1.1 • Published 2 years ago

ab64 v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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

1stGRxTSUnTS
1stG Open Collective backers and sponsorsRxTS Open Collective backers and sponsorsUnTS Open Collective backers and sponsors

Backers

1stGRxTSUnTS
1stG Open Collective backers and sponsorsRxTS Open Collective backers and sponsorsUnTS Open Collective backers and sponsors

Changelog

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

License

MIT © JounQin@1stG.me