ab64
Version:
The smallest and fastest Base64 implementation in JavaScript
26 lines • 880 B
JavaScript
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=browser.js.map