From 88ead3b3d64caff4d2a0ded508c9ccbe105119d2 Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Wed, 29 Jul 2026 14:05:12 +0100 Subject: [PATCH] Remove all Loader.registry.delete lines --- .../server/web-pages/grab-file-path-module.js | 2 +- .../grab-page-bundled-react-component.js | 2 +- .../grab-page-combined-server-res.js | 4 +- dist/utils/register-dev-plugin.d.ts | 1 - dist/utils/register-dev-plugin.js | 69 ------------------- package.json | 2 +- .../web-pages/grab-file-path-module.tsx | 2 +- .../grab-page-bundled-react-component.tsx | 2 +- .../grab-page-combined-server-res.ts | 4 +- src/utils/register-dev-plugin.ts | 68 ------------------ 10 files changed, 9 insertions(+), 147 deletions(-) delete mode 100644 dist/utils/register-dev-plugin.d.ts delete mode 100644 dist/utils/register-dev-plugin.js delete mode 100644 src/utils/register-dev-plugin.ts diff --git a/dist/functions/server/web-pages/grab-file-path-module.js b/dist/functions/server/web-pages/grab-file-path-module.js index 891cc12..ed90b6a 100644 --- a/dist/functions/server/web-pages/grab-file-path-module.js +++ b/dist/functions/server/web-pages/grab-file-path-module.js @@ -24,7 +24,7 @@ export default async function grabFilePathModule({ file_path, out_file, }) { jsx: "automatic", outfile: target_cache_file_path, }); - Loader.registry.delete(target_cache_file_path); + // Loader.registry.delete(target_cache_file_path); const module = await import(`${target_cache_file_path}?t=${Date.now()}`); return module; } diff --git a/dist/functions/server/web-pages/grab-page-bundled-react-component.js b/dist/functions/server/web-pages/grab-page-bundled-react-component.js index cc3fdad..973d11c 100644 --- a/dist/functions/server/web-pages/grab-page-bundled-react-component.js +++ b/dist/functions/server/web-pages/grab-page-bundled-react-component.js @@ -9,7 +9,7 @@ export default async function grabPageBundledReactComponent({ file_path, return_ try { if (global.SSR_BUNDLER_CTX_MAP?.[file_path]) { const abs = path.join(ROOT_DIR, global.SSR_BUNDLER_CTX_MAP[file_path].path); - Loader.registry.delete(abs); + // Loader.registry.delete(abs); const mod = await import(`${abs}?t=${Date.now()}`); const Main = mod.default; return { component: Main }; diff --git a/dist/functions/server/web-pages/grab-page-combined-server-res.js b/dist/functions/server/web-pages/grab-page-combined-server-res.js index dbdfbf1..80d6acd 100644 --- a/dist/functions/server/web-pages/grab-page-combined-server-res.js +++ b/dist/functions/server/web-pages/grab-page-combined-server-res.js @@ -17,7 +17,7 @@ export default async function grabPageCombinedServerRes({ file_path, debug, url, ? path.join(ROOT_DIR, root_server_ctx_map.path) : root_server_file_path; if (final_root_server_path) { - Loader.registry.delete(final_root_server_path); + // Loader.registry.delete(final_root_server_path); } const root_server_module = final_root_server_path ? await import(`${final_root_server_path}?t=${now}`) @@ -38,7 +38,7 @@ export default async function grabPageCombinedServerRes({ file_path, debug, url, ? path.join(ROOT_DIR, page_server_ctx.path) : server_file_path; if (final_page_server_path) { - Loader.registry.delete(final_page_server_path); + // Loader.registry.delete(final_page_server_path); } const server_module = final_page_server_path ? await import(`${final_page_server_path}?t=${now}`) diff --git a/dist/utils/register-dev-plugin.d.ts b/dist/utils/register-dev-plugin.d.ts deleted file mode 100644 index 65d2f0d..0000000 --- a/dist/utils/register-dev-plugin.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function registerDevPlugin(): void; diff --git a/dist/utils/register-dev-plugin.js b/dist/utils/register-dev-plugin.js deleted file mode 100644 index d738286..0000000 --- a/dist/utils/register-dev-plugin.js +++ /dev/null @@ -1,69 +0,0 @@ -import { resolve, dirname, extname } from "path"; -import { existsSync } from "fs"; -const SOURCE_EXTENSIONS = [".tsx", ".ts", ".jsx", ".js"]; -function getLoader(filePath) { - const ext = extname(filePath).slice(1); - return SOURCE_EXTENSIONS.map((e) => e.slice(1)).includes(ext) ? ext : "js"; -} -function tryResolveSync(absPath) { - if (existsSync(absPath)) - return absPath; - for (const ext of SOURCE_EXTENSIONS) { - const p = absPath + ext; - if (existsSync(p)) - return p; - } - for (const ext of SOURCE_EXTENSIONS) { - const p = resolve(absPath, "index" + ext); - if (existsSync(p)) - return p; - } - return null; -} -export default function registerDevPlugin() { - Bun.plugin({ - name: "bunext-dev-hmr", - setup(build) { - // Intercept absolute-path imports that already carry ?t= (our dynamic imports) - build.onResolve({ filter: /\?t=\d+$/ }, (args) => { - if (args.path.includes("node_modules")) - return undefined; - const cleanPath = args.path.replace(/\?t=\d+$/, ""); - const resolved = tryResolveSync(cleanPath); - if (!resolved) - return undefined; - if (!SOURCE_EXTENSIONS.some((e) => resolved.endsWith(e))) - return undefined; - return { - path: `${resolved}?t=${global.LAST_BUILD_TIME ?? 0}`, - namespace: "bunext-dev", - }; - }); - // Intercept relative imports from within bunext-dev modules - build.onResolve({ filter: /^\./ }, (args) => { - if (!/\?t=\d+/.test(args.importer)) - return undefined; - // Strip "namespace:" prefix (e.g. "bunext-dev:") Bun prepends to importer - const cleanImporter = args.importer - .replace(/^[^/]+:(?=\/)/, "") - .replace(/\?t=\d+$/, ""); - const base = resolve(dirname(cleanImporter), args.path); - const resolved = tryResolveSync(base); - if (!resolved) - return undefined; - if (!SOURCE_EXTENSIONS.some((e) => resolved.endsWith(e))) - return undefined; - return { - path: `${resolved}?t=${global.LAST_BUILD_TIME ?? 0}`, - namespace: "bunext-dev", - }; - }); - // Load files in the bunext-dev namespace from disk (async is fine in onLoad) - build.onLoad({ filter: /.*/, namespace: "bunext-dev" }, async (args) => { - const realPath = args.path.replace(/\?t=\d+$/, ""); - const source = await Bun.file(realPath).text(); - return { contents: source, loader: getLoader(realPath) }; - }); - }, - }); -} diff --git a/package.json b/package.json index fe59d16..6162842 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/bunext", - "version": "1.0.98", + "version": "1.0.99", "main": "dist/index.js", "module": "index.ts", "dependencies": { diff --git a/src/functions/server/web-pages/grab-file-path-module.tsx b/src/functions/server/web-pages/grab-file-path-module.tsx index 777c8f8..35a4f25 100644 --- a/src/functions/server/web-pages/grab-file-path-module.tsx +++ b/src/functions/server/web-pages/grab-file-path-module.tsx @@ -38,7 +38,7 @@ export default async function grabFilePathModule({ outfile: target_cache_file_path, }); - Loader.registry.delete(target_cache_file_path); + // Loader.registry.delete(target_cache_file_path); const module = await import(`${target_cache_file_path}?t=${Date.now()}`); return module as T; diff --git a/src/functions/server/web-pages/grab-page-bundled-react-component.tsx b/src/functions/server/web-pages/grab-page-bundled-react-component.tsx index cb8b6de..46306d7 100644 --- a/src/functions/server/web-pages/grab-page-bundled-react-component.tsx +++ b/src/functions/server/web-pages/grab-page-bundled-react-component.tsx @@ -24,7 +24,7 @@ export default async function grabPageBundledReactComponent({ ROOT_DIR, global.SSR_BUNDLER_CTX_MAP[file_path].path, ); - Loader.registry.delete(abs); + // Loader.registry.delete(abs); const mod = await import(`${abs}?t=${Date.now()}`); const Main = mod.default as FC; diff --git a/src/functions/server/web-pages/grab-page-combined-server-res.ts b/src/functions/server/web-pages/grab-page-combined-server-res.ts index 2ff1f74..fceceef 100644 --- a/src/functions/server/web-pages/grab-page-combined-server-res.ts +++ b/src/functions/server/web-pages/grab-page-combined-server-res.ts @@ -41,7 +41,7 @@ export default async function grabPageCombinedServerRes({ : root_server_file_path; if (final_root_server_path) { - Loader.registry.delete(final_root_server_path); + // Loader.registry.delete(final_root_server_path); } const root_server_module: BunextPageServerModule = final_root_server_path ? await import(`${final_root_server_path}?t=${now}`) @@ -69,7 +69,7 @@ export default async function grabPageCombinedServerRes({ : server_file_path; if (final_page_server_path) { - Loader.registry.delete(final_page_server_path); + // Loader.registry.delete(final_page_server_path); } const server_module: BunextPageServerModule = final_page_server_path ? await import(`${final_page_server_path}?t=${now}`) diff --git a/src/utils/register-dev-plugin.ts b/src/utils/register-dev-plugin.ts deleted file mode 100644 index 085061e..0000000 --- a/src/utils/register-dev-plugin.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { resolve, dirname, extname } from "path"; -import { existsSync } from "fs"; - -const SOURCE_EXTENSIONS = [".tsx", ".ts", ".jsx", ".js"]; - -function getLoader(filePath: string) { - const ext = extname(filePath).slice(1) as any; - return SOURCE_EXTENSIONS.map((e) => e.slice(1)).includes(ext) ? ext : "js"; -} - -function tryResolveSync(absPath: string): string | null { - if (existsSync(absPath)) return absPath; - for (const ext of SOURCE_EXTENSIONS) { - const p = absPath + ext; - if (existsSync(p)) return p; - } - for (const ext of SOURCE_EXTENSIONS) { - const p = resolve(absPath, "index" + ext); - if (existsSync(p)) return p; - } - return null; -} - -export default function registerDevPlugin() { - Bun.plugin({ - name: "bunext-dev-hmr", - setup(build) { - // Intercept absolute-path imports that already carry ?t= (our dynamic imports) - build.onResolve({ filter: /\?t=\d+$/ }, (args) => { - if (args.path.includes("node_modules")) return undefined; - const cleanPath = args.path.replace(/\?t=\d+$/, ""); - const resolved = tryResolveSync(cleanPath); - if (!resolved) return undefined; - if (!SOURCE_EXTENSIONS.some((e) => resolved.endsWith(e))) - return undefined; - return { - path: `${resolved}?t=${global.LAST_BUILD_TIME ?? 0}`, - namespace: "bunext-dev", - }; - }); - - // Intercept relative imports from within bunext-dev modules - build.onResolve({ filter: /^\./ }, (args) => { - if (!/\?t=\d+/.test(args.importer)) return undefined; - // Strip "namespace:" prefix (e.g. "bunext-dev:") Bun prepends to importer - const cleanImporter = args.importer - .replace(/^[^/]+:(?=\/)/, "") - .replace(/\?t=\d+$/, ""); - const base = resolve(dirname(cleanImporter), args.path); - const resolved = tryResolveSync(base); - if (!resolved) return undefined; - if (!SOURCE_EXTENSIONS.some((e) => resolved.endsWith(e))) - return undefined; - return { - path: `${resolved}?t=${global.LAST_BUILD_TIME ?? 0}`, - namespace: "bunext-dev", - }; - }); - - // Load files in the bunext-dev namespace from disk (async is fine in onLoad) - build.onLoad({ filter: /.*/, namespace: "bunext-dev" }, async (args) => { - const realPath = args.path.replace(/\?t=\d+$/, ""); - const source = await Bun.file(realPath).text(); - return { contents: source, loader: getLoader(realPath) }; - }); - }, - }); -}