Refactor artifacts to use relative directory for build step and retrieval

This commit is contained in:
2026-09-23 05:08:54 +01:00
parent 2803dfa0be
commit 2335c60cc3
26 changed files with 117 additions and 204 deletions
@@ -4,11 +4,13 @@ import { log } from "../../../utils/log";
import grabRootFilePath from "./grab-root-file-path";
import path from "path";
import grabDirNames from "../../../utils/grab-dir-names";
import grabRelativePath from "../../../utils/grab-relative-path";
const { ROOT_DIR } = grabDirNames();
export default async function grabPageBundledReactComponent({ file_path, return_tsx_only, }) {
try {
if (global.BUNEXT_SSR_BUNDLER_CTX_MAP?.[file_path]) {
const abs = path.join(ROOT_DIR, global.BUNEXT_SSR_BUNDLER_CTX_MAP[file_path].path);
const relative_path = grabRelativePath(file_path);
if (global.BUNEXT_SSR_BUNDLER_CTX_MAP?.[relative_path]) {
const abs = path.join(ROOT_DIR, global.BUNEXT_SSR_BUNDLER_CTX_MAP[relative_path].path);
// Loader.registry.delete(abs);
const mod = await import(`${abs}?t=${Date.now()}`);
const Main = mod.default;
@@ -5,6 +5,7 @@ import grabPageServerRes from "./grab-page-server-res";
import grabPageServerPath from "./grab-page-server-path";
import path from "path";
import grabDirNames from "../../../utils/grab-dir-names";
import grabRelativePath from "../../../utils/grab-relative-path";
const { ROOT_DIR } = grabDirNames();
export default async function grabPageCombinedServerRes({ file_path, debug, url, query, routeParams, }) {
const now = Date.now();
@@ -12,7 +13,9 @@ export default async function grabPageCombinedServerRes({ file_path, debug, url,
const { server_file_path: root_server_file_path } = root_file_path
? grabPageServerPath({ file_path: root_file_path })
: {};
const root_server_ctx_map = global.BUNEXT_SSR_BUNDLER_CTX_MAP[root_server_file_path || ""];
const root_server_ctx_map = root_server_file_path
? global.BUNEXT_SSR_BUNDLER_CTX_MAP[grabRelativePath(root_server_file_path)]
: undefined;
const final_root_server_path = root_server_ctx_map?.local_path
? path.join(ROOT_DIR, root_server_ctx_map.path)
: root_server_file_path;
@@ -33,7 +36,9 @@ export default async function grabPageCombinedServerRes({ file_path, debug, url,
log.info(`rootServerRes:`, rootServerRes);
}
const { server_file_path } = grabPageServerPath({ file_path });
const page_server_ctx = global.BUNEXT_SSR_BUNDLER_CTX_MAP[server_file_path || ""];
const page_server_ctx = server_file_path
? global.BUNEXT_SSR_BUNDLER_CTX_MAP[grabRelativePath(server_file_path)]
: undefined;
const final_page_server_path = page_server_ctx?.local_path
? path.join(ROOT_DIR, page_server_ctx.path)
: server_file_path;
+7 -6
View File
@@ -9,8 +9,8 @@ import serverPostBuildFn from "../server-post-build-fn";
import isDevelopment from "../../../utils/is-development";
import { existsSync } from "fs";
import grabDirNames from "../../../utils/grab-dir-names";
import watcherEsbuildCTX from "../watcher-esbuild-ctx";
const { BUNX_BUNDLER_ERROR_EXIT_FILE } = grabDirNames();
import grabRelativePath from "../../../utils/grab-relative-path";
const { BUNX_BUNDLER_ERROR_EXIT_FILE, ROOT_DIR } = grabDirNames();
class NotFoundError extends Error {
status = 404;
constructor(message) {
@@ -51,7 +51,8 @@ export default async function grabPageComponent(params) {
// log.error(errMsg);
throw new Error(errMsg);
}
let bundledMap = global.BUNEXT_BUNDLER_CTX_MAP[file_path];
const relative_file_path = grabRelativePath(file_path);
let bundledMap = global.BUNEXT_BUNDLER_CTX_MAP[relative_file_path];
if (!bundledMap?.path) {
if (does_error_file_exist) {
throw new Error(`Application Error. Please Check your components. ${match?.filePath} likely exists but has no exported module.`);
@@ -60,10 +61,10 @@ export default async function grabPageComponent(params) {
const MAX_RETRIES = 2;
while (retries < MAX_RETRIES) {
await fullRebuild({
msg: `Retrying Bundle map for file \`${file_path}\``,
msg: `Retrying Bundle map for file \`${relative_file_path}\``,
});
await Bun.sleep(1000);
bundledMap = global.BUNEXT_BUNDLER_CTX_MAP[file_path];
bundledMap = global.BUNEXT_BUNDLER_CTX_MAP[relative_file_path];
if (bundledMap?.path)
break;
}
@@ -74,7 +75,7 @@ export default async function grabPageComponent(params) {
}
}
if (req && !is_hydration) {
global.BUNEXT_BUNDLER_CTX_MAP[file_path].req_url = req.url;
global.BUNEXT_BUNDLER_CTX_MAP[relative_file_path].req_url = req.url;
}
if (debug) {
log.info(`bundledMap:`, bundledMap);
@@ -4,6 +4,7 @@ import grabPageModules from "./grab-page-modules";
import _ from "lodash";
import fullRebuild from "../full-rebuild";
import isDevelopment from "../../../utils/is-development";
import grabRelativePath from "../../../utils/grab-relative-path";
export default async function grabPageErrorComponent({ error, routeParams, is404, url, }) {
const router = global.BUNEXT_ROUTER;
const is_dev = isDevelopment();
@@ -33,7 +34,7 @@ export default async function grabPageErrorComponent({ error, routeParams, is404
};
}
const file_path = match.filePath;
const bundledMap = global.BUNEXT_BUNDLER_CTX_MAP?.[file_path];
const bundledMap = global.BUNEXT_BUNDLER_CTX_MAP?.[grabRelativePath(file_path)];
const page_component = await grabPageModules({
file_path: file_path,
query: match?.query,