From 81ecb13370368fccdceff8c61021fc0c348f2375 Mon Sep 17 00:00:00 2001 From: Neal Shah <30693865+ProgrammerIn-wonderland@users.noreply.github.com> Date: Wed, 30 Jul 2025 19:39:34 -0700 Subject: [PATCH] Support a few more incoming and global objects in workers (#1401) * no more global puter object in workers * also support my as a global in workers * support incoming user object in workers * also support myself in puter workers --- src/backend/src/services/worker/src/s2w-router.js | 9 ++++++--- .../src/services/worker/template/puter-portable.js | 8 ++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/backend/src/services/worker/src/s2w-router.js b/src/backend/src/services/worker/src/s2w-router.js index 6979e2b50..ac954d638 100644 --- a/src/backend/src/services/worker/src/s2w-router.js +++ b/src/backend/src/services/worker/src/s2w-router.js @@ -64,11 +64,14 @@ function inits2w() { * @returns */ async route(event) { - if (!globalThis.puter) { - const success = init_puter_portable(globalThis.puter_auth, globalThis.puter_endpoint || "https://api.puter.com"); + if (!globalThis.me) { + globalThis.me = { puter: init_puter_portable(globalThis.puter_auth, globalThis.puter_endpoint || "https://api.puter.com", "userPuter") } + globalThis.my = me; + globalThis.myself = me; } if (event.request.headers.has("puter-auth")) { - event.puter = init_puter_portable(event.request.headers.get("puter-auth"), globalThis.puter_endpoint || "https://api.puter.com", "userPuter"); + event.requestor = { puter: init_puter_portable(event.request.headers.get("puter-auth"), globalThis.puter_endpoint || "https://api.puter.com", "userPuter") }; + event.user = event.requestor; } const mappings = this.map.get(event.request.method); diff --git a/src/backend/src/services/worker/template/puter-portable.js b/src/backend/src/services/worker/template/puter-portable.js index 049daadd9..53a958084 100644 --- a/src/backend/src/services/worker/template/puter-portable.js +++ b/src/backend/src/services/worker/template/puter-portable.js @@ -27,6 +27,9 @@ globalThis.init_puter_portable = (auth, apiOrigin, type) => { const goodContext = {} Object.getOwnPropertyNames(globalThis).forEach(name => { try { goodContext[name] = globalThis[name]; } catch {} }) goodContext.globalThis = goodContext; + goodContext.WorkerGlobalScope = WorkerGlobalScope; + goodContext.ServiceWorkerGlobalScope = ServiceWorkerGlobalScope; + goodContext.location = new URL("https://puter.work"); goodContext.addEventListener = ()=>{}; // @ts-ignore with (goodContext) { @@ -37,9 +40,10 @@ globalThis.init_puter_portable = (auth, apiOrigin, type) => { return goodContext.puter; } else { #include "../../../../../puter-js/dist/puter.js" + + puter.setAPIOrigin(apiOrigin); + puter.setAuthToken(auth); } - puter.setAPIOrigin(apiOrigin); - puter.setAuthToken(auth); } #include "../dist/webpackPreamplePart.js"