From 216d62d81ebd6ea0f8670d2e6edf7d034a5eb7dc Mon Sep 17 00:00:00 2001 From: alina sireneva Date: Fri, 24 Jan 2025 08:00:28 +0300 Subject: [PATCH] fix: connect before running a script --- packages/worker/src/sw/iframe/script.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/worker/src/sw/iframe/script.ts b/packages/worker/src/sw/iframe/script.ts index 3d5d358..a20a416 100644 --- a/packages/worker/src/sw/iframe/script.ts +++ b/packages/worker/src/sw/iframe/script.ts @@ -141,6 +141,16 @@ window.addEventListener('message', async ({ data }) => { currentScriptId = nanoid() await swInvokeMethodInner({ event: 'UPLOAD_SCRIPT', name: currentScriptId, files: data.files }, asNonNull(navigator.serviceWorker.controller)) + if (!window.tg) { + // shouldnt happen but just in case + console.warn('[mtcute-repl] Telegram client not initialized yet') + return + } + + if (lastConnectionState === 'offline') { + await window.tg.connect() + } + const el = document.createElement('script') el.type = 'module' let script = `import * as result from "/sw/runtime/script/${currentScriptId}/main.js";` @@ -177,6 +187,7 @@ window.addEventListener('message', async ({ data }) => { initClient(lastAccountId, data.verboseLogs) } window.parent.postMessage({ event: 'CONNECTION_STATE', value: 'offline' }, HOST_ORIGIN) + lastConnectionState = 'offline' } else if (data.event === 'RECONNECT') { if (window.tg !== undefined) { window.tg.connect()