diff --git a/.changeset/silent-dryers-taste.md b/.changeset/silent-dryers-taste.md new file mode 100644 index 000000000..d10dc9ccb --- /dev/null +++ b/.changeset/silent-dryers-taste.md @@ -0,0 +1,5 @@ +--- +"@solidjs/start": patch +--- + +fix singleflight mutations in non-ALS envs diff --git a/packages/start/config/server-handler.ts b/packages/start/config/server-handler.ts index 5d509c92a..8238cb692 100644 --- a/packages/start/config/server-handler.ts +++ b/packages/start/config/server-handler.ts @@ -200,12 +200,20 @@ async function handleSingleFlight(sourceEvent: FetchEvent, result: any) { return await provideRequestEvent(event, async () => { await createPageEvent(event); /* @ts-ignore */ - sharedConfig.context = { event }; - /* @ts-ignore */ event.router.dataOnly = revalidate || true; /* @ts-ignore */ event.router.previousUrl = sourceEvent.request.headers.get("referer"); - renderToStringAsync(App); + (async () => { + try { + await renderToStringAsync(() => { + /* @ts-ignore */ + sharedConfig.context = { event }; + App(); + }); + } catch (e) { + console.log(e); + } + })(); /* @ts-ignore */ const body = event.router.data; if (body) {