fix: use globals to avoid loader race conditions

This commit is contained in:
Aarnav Tale
2025-02-20 10:45:52 -05:00
parent f5436f5ee3
commit f982217dd0
5 changed files with 60 additions and 97 deletions
+1 -14
View File
@@ -3,17 +3,11 @@ import { createReadableStreamFromReadable } from '@react-router/node';
import { isbot } from 'isbot';
import type { RenderToPipeableStreamOptions } from 'react-dom/server';
import { renderToPipeableStream } from 'react-dom/server';
import type { AppLoadContext, EntryContext } from 'react-router';
import { ServerRouter } from 'react-router';
import { hs_loadConfig } from '~/utils/config/loader';
import { hp_storeContext } from '~/utils/headscale';
import { EntryContext, ServerRouter } from 'react-router';
import { hp_loadLogger } from '~/utils/log';
import { initSessionManager } from '~/utils/sessions.server';
import type { AppContext } from '~server/context/app';
export const streamTimeout = 5_000;
// TODO: checkOidc
export default function handleRequest(
request: Request,
responseStatusCode: number,
@@ -23,15 +17,8 @@ export default function handleRequest(
) {
const { context } = loadContext;
return new Promise((resolve, reject) => {
initSessionManager(
context.server.cookie_secret,
context.server.cookie_secure,
);
// This is a promise but we don't need to wait for it to finish
// before we start rendering the shell since it only loads once.
hs_loadConfig(context);
hp_storeContext(context);
hp_loadLogger(context.debug);
let shellRendered = false;