UNPKG

@tradle/urlsafe-base64

Version:

Compatible urlsafe base64 de-/encoder

29 lines (25 loc) 555 B
import { Buffer } from 'buffer' export const safe = Object.freeze({ encode (bytes) { return Buffer.from(bytes) .toString('base64') .replace(/\+/g, '-') .replace(/\//g, '_') }, decode (string) { return Buffer.from( string .replace(/-/g, '+') .replace(/_/g, '/') + ending[string.length % 4], 'base64' ) } }) const ending = ['', '===', '==', '=='] export const short = Object.freeze({ encode (bytes) { return safe.encode(bytes).replace(/=+$/, '') }, decode: safe.decode })