@tradle/urlsafe-base64
Version:
Compatible urlsafe base64 de-/encoder
29 lines (25 loc) • 555 B
JavaScript
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
})