UNPKG

portalis-component

Version:

Component Library for Nuxt 3 using TailwindCSS

36 lines (35 loc) 1.06 kB
export function toBase64(file) { return new Promise((resolve, reject) => { const reader = new FileReader(); const onLoad = () => { cleanup(); resolve(reader.result); }; const onError = (error) => { cleanup(); reject(error); }; const cleanup = () => { reader.removeEventListener("load", onLoad); reader.removeEventListener("error", onError); }; reader.addEventListener("load", onLoad); reader.addEventListener("error", onError); reader.readAsDataURL(file); }); } export function fromBase64(dataurl, filename, mimeType) { if (!dataurl) return; try { const name = filename ?? (/* @__PURE__ */ new Date()).toISOString(); const [meta, body] = dataurl.split(","); const mime = mimeType ?? meta.match(/:(.*?);/)?.[1]; const buffer = window.atob(body); const uint8 = Uint8Array.from(buffer, (c) => c.codePointAt(0)); return new globalThis.File([uint8], name, { type: mime }); } catch (error) { if (import.meta.env.DEV) console.warn(error); } }