From 00aacf2b4716bd16d844602fa51b6c2aa724ad3c Mon Sep 17 00:00:00 2001 From: Steven Vandevelde Date: Wed, 2 Sep 2026 21:07:34 +0200 Subject: [PATCH] chore: jsr publish prep for first alpha --- deno.jsonc | 7 ++++--- src/common/worker.js | 28 ++++++++++++++++++---------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/deno.jsonc b/deno.jsonc index f532f072..205283ff 100644 --- a/deno.jsonc +++ b/deno.jsonc @@ -99,7 +99,7 @@ "./common/element.js": "./src/common/element.js", "./common/signal.js": "./src/common/signal.js", "./common/worker.js": "./src/common/worker.js", - "./common/worker/rpc.js": "./src/common/worker/rpc.js", + "./common/worker/rpc-channel.js": "./src/common/worker/rpc-channel.js", "./common/utils.js": "./src/common/utils.js", "./components/artwork/audio-metadata/element.js": "./src/components/artwork/audio-metadata/element.js", "./components/artwork/audio-metadata/worker.js": "./src/components/artwork/audio-metadata/worker.js", @@ -188,7 +188,7 @@ "./components/output/common.js": "./src/components/output/common.js", "./components/output/polymorphic/indexed-db/constants.js": "./src/components/output/polymorphic/indexed-db/constants.js", "./components/output/polymorphic/indexed-db/element.js": "./src/components/output/polymorphic/indexed-db/element.js", - "./components/output/polymorphic/indexed-db/worker.js": "./src/components/output/polymorphic/indexed-db/worker.js", + "./components/output/raw/atproto-passkey/element.js": "./src/components/output/raw/atproto-passkey/element.js", "./components/output/raw/atproto-space/element.js": "./src/components/output/raw/atproto-space/element.js", "./components/supplement/last.fm/element.js": "./src/components/supplement/last.fm/element.js", @@ -330,8 +330,9 @@ "src/common/**/*.d.ts", "src/components/**/*.js", "specs/components/**/*.d.ts", - "src/definitions/**/*.json", + "src/**/*.json", "src/definitions/**/*.ts", + "src/oauth/**/*.js", ], }, "permissions": { diff --git a/src/common/worker.js b/src/common/worker.js index 4da58bdb..f589108b 100644 --- a/src/common/worker.js +++ b/src/common/worker.js @@ -1,4 +1,3 @@ -/// import { getTransferables } from "@okikio/transferables"; import { debounceMicrotask } from "@vicary/debounce-microtask"; import { xxh32 } from "xxh32"; @@ -26,16 +25,27 @@ export { getTransferables } from "@okikio/transferables"; // Previously we checked `globalThis.onmessage === null`, but Safari initialises // that property as `undefined` rather than `null`, causing the check to fail. +/** + * Detects whether we're running inside a dedicated worker's global scope. + * Uses the constructor name rather than the `DedicatedWorkerGlobalScope` + * global, so this module doesn't need the `webworker` TS lib (JSR disallows + * `/// ` in published files). + * + * @param {unknown} context + * @returns {boolean} + */ +function isDedicatedWorkerScope(context) { + return /** @type {any} */ (context)?.constructor?.name === + "DedicatedWorkerGlobalScope"; +} + /** @type {MessageEvent[]} */ const _earlyMessages = []; /** @type {null | (() => void)} */ let _flushEarlyMessages = null; -if ( - typeof DedicatedWorkerGlobalScope !== "undefined" && - globalThis instanceof DedicatedWorkerGlobalScope -) { +if (isDedicatedWorkerScope(globalThis)) { const handler = /** @type {EventListener} */ ((event) => { _earlyMessages.push(/** @type {MessageEvent} */ (event)); }); @@ -63,10 +73,7 @@ export function ostiary( callback, context = /** @type {T} */ (/** @type {unknown} */ (globalThis)), ) { - if ( - typeof DedicatedWorkerGlobalScope !== "undefined" && - context instanceof DedicatedWorkerGlobalScope - ) { + if (isDedicatedWorkerScope(context)) { callback(context, true, crypto.randomUUID()); // Replay any messages that arrived before the handler was registered. @@ -211,7 +218,8 @@ export function announce( ) { const a = announcement(name, args); const transferables = getTransferables(a); - (context ?? globalThis).postMessage(a, { transfer: transferables }); + /** @type {MessengerRealm} */ (/** @type {unknown} */ (context ?? globalThis)) + .postMessage(a, { transfer: transferables }); } /** -- 2.51.2