Bugfix: Refactor SSR bundler. Fix stale cache SSR modules.

This commit is contained in:
2026-04-09 23:50:58 +01:00
parent 40fc7778a8
commit 7fb1784b95
28 changed files with 434 additions and 85 deletions
@@ -4,6 +4,10 @@ import grabTsxStringModule from "./grab-tsx-string-module";
import { log } from "../../../utils/log";
import type { FC } from "react";
import grabRootFilePath from "./grab-root-file-path";
import path from "path";
import grabDirNames from "../../../utils/grab-dir-names";
const { ROOT_DIR } = grabDirNames();
type Params = {
file_path: string;
@@ -15,6 +19,16 @@ export default async function grabPageBundledReactComponent({
return_tsx_only,
}: Params): Promise<GrabPageReactBundledComponentRes | undefined> {
try {
if (global.SSR_BUNDLER_CTX_MAP?.[file_path]) {
const mod = await import(
path.join(ROOT_DIR, global.SSR_BUNDLER_CTX_MAP[file_path].path)
);
const Main = mod.default as FC;
return { component: Main };
}
const { root_file_path } = grabRootFilePath();
let tsx = grabPageReactComponentString({
@@ -1,31 +1,23 @@
import EJSON from "../../../utils/ejson";
import { log } from "../../../utils/log";
type Params = {
file_path: string;
root_file_path?: string;
// server_res?: any;
};
export default function grabPageReactComponentString({
file_path,
root_file_path,
// server_res,
}: Params): string | undefined {
try {
let tsx = ``;
// const server_res_json = JSON.stringify(
// EJSON.stringify(server_res || {}) ?? "{}",
// );
if (root_file_path) {
tsx += `import Root from "${root_file_path}"\n`;
}
tsx += `import Page from "${file_path}"\n`;
tsx += `export default function Main({...props}) {\n\n`;
// tsx += `const props = JSON.parse(${server_res_json})\n\n`;
tsx += ` return (\n`;
if (root_file_path) {
tsx += ` <Root {...props}><Page {...props} /></Root>\n`;