Persist Request accorss hydration refreshes

This commit is contained in:
2026-04-11 12:52:56 +01:00
parent 814a289460
commit 35f7a6fc85
14 changed files with 37 additions and 18 deletions
-2
View File
@@ -12,10 +12,8 @@ export default async function fullRebuild(params) {
global.ROUTER.reload();
await global.BUNDLER_CTX?.dispose();
global.BUNDLER_CTX = undefined;
global.BUNDLER_CTX_MAP = {};
await global.SSR_BUNDLER_CTX?.dispose();
global.SSR_BUNDLER_CTX = undefined;
global.SSR_BUNDLER_CTX_MAP = {};
allPagesESBuildContextBundler({
post_build_fn: serverPostBuildFn,
});
+4 -1
View File
@@ -14,11 +14,14 @@ export default async function serverPostBuildFn() {
continue;
}
const target_artifact = global.BUNDLER_CTX_MAP[controller.target_map.local_path];
const mock_req = new Request(controller.page_url);
const mock_req = target_artifact.req
? target_artifact.req.clone()
: new Request(controller.page_url);
const { serverRes } = global.IS_SERVER_COMPONENT
? await grabPageComponent({
req: mock_req,
return_server_res_only: true,
is_hydration: true,
})
: {};
const final_artifact = {
@@ -6,6 +6,7 @@ type Params = {
retry?: boolean;
return_server_res_only?: boolean;
skip_server_res?: boolean;
is_hydration?: boolean;
};
export default function grabPageComponent(params: Params): Promise<GrabPageComponentRes>;
export {};
+5 -2
View File
@@ -13,7 +13,7 @@ class NotFoundError extends Error {
}
}
export default async function grabPageComponent(params) {
const { req, file_path: passed_file_path, debug, return_server_res_only, skip_server_res, } = params;
const { req, file_path: passed_file_path, debug, return_server_res_only, skip_server_res, is_hydration, } = params;
const url = req?.url ? new URL(req.url) : undefined;
const router = global.ROUTER;
let routeParams = undefined;
@@ -39,13 +39,16 @@ export default async function grabPageComponent(params) {
// log.error(errMsg);
throw new Error(errMsg);
}
const bundledMap = global.BUNDLER_CTX_MAP?.[file_path];
const bundledMap = global.BUNDLER_CTX_MAP[file_path];
if (!bundledMap?.path) {
console.log(global.BUNDLER_CTX_MAP);
const errMsg = `No Bundled File Path for this request path!`;
log.error(errMsg);
throw new Error(errMsg);
}
if (req && !is_hydration) {
global.BUNDLER_CTX_MAP[file_path].req = req;
}
if (debug) {
log.info(`bundledMap:`, bundledMap);
}