UNPKG

seitu

Version:
41 lines (40 loc) • 1.14 kB
//#region src/internal/indexed-db-request.ts function requestToPromise(request) { return new Promise((resolve, reject) => { request.onsuccess = () => resolve(request.result); request.onerror = () => reject(request.error); }); } function transactionDone(transaction) { return new Promise((resolve, reject) => { transaction.oncomplete = () => resolve(); transaction.onerror = () => reject(transaction.error); transaction.onabort = () => reject(transaction.error); }); } function createBroadcaster(channelName) { let channel; return { broadcast: () => { if (typeof BroadcastChannel === "undefined") return; if (channel) { channel.postMessage(null); return; } const ephemeral = new BroadcastChannel(channelName); ephemeral.postMessage(null); ephemeral.close(); }, listen: (onMessage) => { if (typeof BroadcastChannel === "undefined") return; channel = new BroadcastChannel(channelName); channel.onmessage = onMessage; return () => { channel?.close(); channel = void 0; }; } }; } //#endregion export { requestToPromise as n, transactionDone as r, createBroadcaster as t };