diff --git a/packages/web/src/exit-hook.ts b/packages/web/src/exit-hook.ts index ce8f3e1e..223c5da0 100644 --- a/packages/web/src/exit-hook.ts +++ b/packages/web/src/exit-hook.ts @@ -3,6 +3,9 @@ const callbacks = new Set<() => void>() let registered = false export function beforeExit(fn: () => void): () => void { + if (typeof window === 'undefined') { + return () => {} + } if (!registered) { registered = true diff --git a/packages/web/src/worker.ts b/packages/web/src/worker.ts index 885ac17c..e45f7463 100644 --- a/packages/web/src/worker.ts +++ b/packages/web/src/worker.ts @@ -26,15 +26,6 @@ export class TelegramWorker extends TelegramWorke _registered = true - if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { - const respond: RespondFn = self.postMessage.bind(self) - - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument - self.addEventListener('message', (message) => handler(message.data, respond)) - - return respond - } - if (typeof SharedWorkerGlobalScope !== 'undefined' && self instanceof SharedWorkerGlobalScope) { const connections: MessagePort[] = [] @@ -90,11 +81,21 @@ export class TelegramWorker extends TelegramWorke // eslint-disable-next-line @typescript-eslint/no-unsafe-argument handler(message.data, respond) }) + port.start() } return broadcast } + if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { + const respond: RespondFn = self.postMessage.bind(self) + + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + self.addEventListener('message', (message) => handler(message.data, respond)) + + return respond + } + throw new Error('TelegramWorker must be created from a worker') } }