UNPKG

ab64

Version:

The smallest and fastest Base64 implementation in JavaScript

27 lines 925 B
import { atob, btoa } from './ponyfill.js'; import { slice } from './helpers.js'; const HEX = 16; const CHUNK = 4; export const decode = (val) => decodeURIComponent(slice(atob(val)) .map(char => '%' + ('00' + char.codePointAt(0).toString(HEX)).slice(-1 * 2)) .join('')); export const encode = (val) => btoa(encodeURIComponent(val).replace(/%([\dA-F]{2})/g, (_, $1) => String.fromCodePoint(parseInt($1, HEX)))); export const decodeUrl = (val) => { let output = val.replace(/-/g, '+').replace(/_/g, '/'); switch (output.length % CHUNK) { case 0: { break; } case 2: { output += '=='; break; } case 3: { output += '='; break; } } return decode(output); }; export const encodeUrl = (val) => encode(val).replace(/\+/g, '-').replace(/=/g, '').replace(/\//g, '_'); //# sourceMappingURL=mini-app.js.map