UNPKG

@arkade-os/sdk

Version:

Bitcoin wallet SDK with Taproot and Ark integration

32 lines (31 loc) 1.15 kB
/** * setupServiceWorker sets up the service worker. * @param path - the path to the service worker script * @example * ```typescript * const serviceWorker = await setupServiceWorker("/service-worker.js"); * ``` */ export async function setupServiceWorker(path) { // check if service workers are supported if (!("serviceWorker" in navigator)) { throw new Error("Service workers are not supported in this browser"); } // register service worker const registration = await navigator.serviceWorker.register(path); // force update to ensure the service worker is active registration.update(); const serviceWorker = registration.active || registration.waiting || registration.installing; if (!serviceWorker) { throw new Error("Failed to get service worker instance"); } // wait for the service worker to be ready if (serviceWorker.state !== "activated") { await new Promise((resolve) => { if (!serviceWorker) return resolve(); serviceWorker.addEventListener("activate", () => resolve()); }); } return serviceWorker; }