UNPKG

pspdfkit

Version:

View and annotate PDF files in your web app. Full support for mobile and desktop. Runs in the browser using WASM.

1 lines 1.69 kB
let require,resources;const ENVIRONMENT_IS_NODE="string"==typeof globalThis.process?.versions?.node,ENVIRONMENT_IS_DENO="object"==typeof window&&"Deno"in window||"object"==typeof self&&"Deno"in self;export async function initialize(){if(ENVIRONMENT_IS_NODE){const{createRequire:e}=await import("module");require=e(import.meta.url)}else if(ENVIRONMENT_IS_DENO){const e=(await import("./resources/list.json",{assert:{type:"json"}})).default,r=await Promise.all(e.map((e=>{const r=new URL(`./resources/${e}`,import.meta.url);return globalThis.fetch(r).then((async e=>{if(e.ok)return e.arrayBuffer()})).then((r=>({buffer:r,filename:e}))).catch((()=>({buffer:void 0,filename:e})))})));resources=r.reduce(((e,{filename:r,buffer:t})=>(e[`${globalThis.gdPicture.baseUrl}/resources/${decodeURI(r)}`]=t,e)),{})}}export function fetchResource(e,r){fetch(`${globalThis.gdPicture.baseUrl}/resources/${e}`,r)}export function fetch(e,r){try{if(ENVIRONMENT_IS_NODE){const t=require("node:fs"),o=require("node:path"),i=t.readFileSync(o.normalize(e));globalThis.gdPicture.module.FS.writeFile(r,new Uint8Array(i))}else if(ENVIRONMENT_IS_DENO)globalThis.gdPicture.module.FS.writeFile(r,new Uint8Array(resources[e]));else{const t=new XMLHttpRequest;t.open("GET",e,!1),t.overrideMimeType("text/plain; charset=x-user-defined"),t.send(),200===t.status?globalThis.gdPicture.module.FS.writeFile(r,stringToArrayBuffer(t.response)):console.error(`Could not retrieve resource. Status: ${t.status}`)}}catch(e){console.error(`Could not retrieve resource. Exception: ${e}`)}}function stringToArrayBuffer(e){const r=new ArrayBuffer(e.length),t=new Uint8Array(r);for(let r=0,o=e.length;r<o;r++)t[r]=e.charCodeAt(r);return t}