lesca-atobtoa
Version:
encode / decode data to base64
21 lines (20 loc) • 661 B
JavaScript
const n = typeof window > "u", a = n ? (o) => Buffer.from(o).toString("base64") : window.btoa, s = n ? (o) => Buffer.from(o, "base64").toString() : window.atob, c = (o, e = 1) => {
let t = "";
return a(encodeURIComponent(escape(JSON.stringify(o)))).split("").forEach((r) => {
t += String.fromCharCode(r.charCodeAt(0) + e);
}), t;
}, f = (o, e = 1) => {
try {
let t = "";
return o.split("").forEach((r) => {
t += String.fromCharCode(r.charCodeAt(0) - e);
}), JSON.parse(unescape(decodeURIComponent(s(t))));
} catch {
return !1;
}
}, d = { toBase64: c, toJson: f };
export {
d as default,
c as toBase64,
f as toJson
};