From 78e86b3999fa1c80650ca09496640b342ff1f4cb Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Mon, 3 Aug 2026 12:01:40 +0100 Subject: [PATCH] Rename global variables --- dist/commands/build/index.js | 2 +- .../all-pages-esbuild-context-bundler.js | 8 +- .../bundler/build-on-start-error-handler.js | 18 ++-- .../bundler/bun-react-modules-bundler.js | 2 +- dist/functions/bundler/pages-ssr-bundler.js | 4 +- .../bundler/pages-ssr-context-bundler.js | 10 +-- .../plugins/bun-skip-browser-plugin.js | 6 +- .../plugins/esbuild-ctx-artifact-tracker.js | 29 +++--- .../plugins/ssr-ctx-artifact-tracker.js | 21 +++-- .../bundler/react-modules-bundler.js | 2 +- dist/functions/bundler/record-artifacts.js | 4 +- dist/functions/bunext-init.d.ts | 58 ++++++------ dist/functions/bunext-init.js | 28 +++--- dist/functions/cache/trim-cache-key.js | 2 +- dist/functions/init.js | 4 +- dist/functions/server/bunext-req-handler.js | 4 +- .../server/chokidar-watcher-esbuild-ctx.js | 32 +++---- dist/functions/server/full-rebuild.js | 20 ++--- dist/functions/server/handle-hmr.js | 10 +-- dist/functions/server/handle-routes.js | 4 +- dist/functions/server/server-post-build-fn.js | 18 ++-- dist/functions/server/start-server.js | 2 +- dist/functions/server/watcher-esbuild-ctx.js | 40 ++++----- .../server/web-pages/generate-web-html.js | 4 +- .../grab-page-bundled-react-component.js | 4 +- .../grab-page-combined-server-res.js | 4 +- .../server/web-pages/grab-page-component.js | 19 ++-- .../web-pages/grab-page-error-component.js | 4 +- .../web-pages/grab-tsx-string-module.js | 7 +- dist/utils/check-excluded-patterns.js | 4 +- dist/utils/grab-app-port.js | 4 +- dist/utils/grab-assets-prefix.js | 4 +- dist/utils/grab-constants.js | 2 +- dist/utils/grab-dir-names.js | 4 +- dist/utils/grab-origin.js | 4 +- dist/utils/grab-route-params.js | 2 +- dist/utils/grab-router.js | 4 +- dist/utils/log.js | 2 +- dist/utils/refresh-router.js | 2 +- package.json | 2 +- src/commands/build/index.ts | 2 +- .../all-pages-esbuild-context-bundler.ts | 8 +- .../bundler/build-on-start-error-handler.ts | 18 ++-- .../bundler/bun-react-modules-bundler.ts | 2 +- src/functions/bundler/pages-ssr-bundler.ts | 4 +- .../bundler/pages-ssr-context-bundler.ts | 10 +-- .../plugins/bun-skip-browser-plugin.ts | 6 +- .../plugins/esbuild-ctx-artifact-tracker.ts | 33 ++++--- .../plugins/ssr-ctx-artifact-tracker.ts | 27 +++--- .../bundler/react-modules-bundler.ts | 2 +- src/functions/bundler/record-artifacts.ts | 7 +- src/functions/bunext-init.ts | 90 +++++++++---------- src/functions/cache/trim-cache-key.ts | 2 +- src/functions/init.ts | 4 +- src/functions/server/bunext-req-handler.ts | 11 +-- .../server/chokidar-watcher-esbuild-ctx.ts | 32 +++---- src/functions/server/full-rebuild.ts | 20 ++--- src/functions/server/handle-hmr.ts | 10 +-- src/functions/server/handle-routes.ts | 8 +- src/functions/server/server-post-build-fn.ts | 18 ++-- src/functions/server/start-server.ts | 2 +- src/functions/server/watcher-esbuild-ctx.ts | 42 ++++----- .../server/web-pages/generate-web-html.tsx | 4 +- .../grab-page-bundled-react-component.tsx | 4 +- .../grab-page-combined-server-res.ts | 5 +- .../server/web-pages/grab-page-component.tsx | 19 ++-- .../web-pages/grab-page-error-component.tsx | 4 +- .../web-pages/grab-tsx-string-module.tsx | 7 +- src/utils/check-excluded-patterns.ts | 8 +- src/utils/grab-app-port.ts | 4 +- src/utils/grab-assets-prefix.ts | 4 +- src/utils/grab-constants.ts | 2 +- src/utils/grab-dir-names.ts | 2 +- src/utils/grab-origin.ts | 4 +- src/utils/grab-route-params.ts | 2 +- src/utils/grab-router.ts | 4 +- src/utils/log.ts | 2 +- src/utils/refresh-router.ts | 2 +- 78 files changed, 431 insertions(+), 408 deletions(-) diff --git a/dist/commands/build/index.js b/dist/commands/build/index.js index cfb1425..f240f34 100644 --- a/dist/commands/build/index.js +++ b/dist/commands/build/index.js @@ -13,7 +13,7 @@ export default function () { rmSync(BUNX_CWD_PAGES_REWRITE_DIR, { recursive: true }); } catch (error) { } - global.SKIPPED_BROWSER_MODULES = new Set(); + global.BUNEXT_SKIPPED_BROWSER_MODULES = new Set(); await bunextInit({ build_only: true }); log.success("Modules Built Successfully!"); process.exit(); diff --git a/dist/functions/bundler/all-pages-esbuild-context-bundler.js b/dist/functions/bundler/all-pages-esbuild-context-bundler.js index b30e50b..0919515 100644 --- a/dist/functions/bundler/all-pages-esbuild-context-bundler.js +++ b/dist/functions/bundler/all-pages-esbuild-context-bundler.js @@ -13,7 +13,7 @@ export default async function allPagesESBuildContextBundler(params) { try { const did_process_exit_because_of_bundler_error = existsSync(BUNX_BUNDLER_ERROR_EXIT_FILE); const pages = grabAllPages({ exclude_api: true }); - global.PAGE_FILES = pages; + global.BUNEXT_PAGE_FILES = pages; const dev = isDevelopment(); const entryToPage = new Map(); for (const page of pages) { @@ -28,7 +28,7 @@ export default async function allPagesESBuildContextBundler(params) { entryToPage.set(entryFile, { ...page, tsx }); } const entryPoints = [...entryToPage.keys()].map((e) => `hydration-virtual:${e}`); - global.BUNDLER_CTX = await esbuild.context({ + global.BUNEXT_BUNDLER_CTX = await esbuild.context({ entryPoints, outdir: HYDRATION_DST_DIR, bundle: true, @@ -62,13 +62,13 @@ export default async function allPagesESBuildContextBundler(params) { "react-dom/client", "react/jsx-runtime", "react/jsx-dev-runtime", - ...(global.CONFIG.page_compiler_excludes || []), + ...(global.BUNEXT_CONFIG.page_compiler_excludes || []), ], logLevel: did_process_exit_because_of_bundler_error ? "silent" : undefined, }); - await global.BUNDLER_CTX.rebuild(); + await global.BUNEXT_BUNDLER_CTX.rebuild(); } catch (error) { console.log(`ESBUILD Error =>`, error); diff --git a/dist/functions/bundler/build-on-start-error-handler.js b/dist/functions/bundler/build-on-start-error-handler.js index adc2221..bebe338 100644 --- a/dist/functions/bundler/build-on-start-error-handler.js +++ b/dist/functions/bundler/build-on-start-error-handler.js @@ -1,18 +1,18 @@ export default async function buildOnstartErrorHandler(params) { // const error_msg = `Build Failed. Please check all your components and imports.`; // log.error(error_msg); - if (global.BUNDLER_CTX_DISPOSED) { + if (global.BUNEXT_BUNDLER_CTX_DISPOSED) { return; } // console.log(`Killing Bundler ...`); - // console.log(`global.BUNDLER_CTX_DISPOSED`, global.BUNDLER_CTX_DISPOSED); - global.BUNDLER_CTX_DISPOSED = true; - global.RECOMPILING = false; - global.IS_SERVER_COMPONENT = false; + // console.log(`global.BUNEXT_BUNDLER_CTX_DISPOSED`, global.BUNEXT_BUNDLER_CTX_DISPOSED); + global.BUNEXT_BUNDLER_CTX_DISPOSED = true; + global.BUNEXT_RECOMPILING = false; + global.BUNEXT_IS_SERVER_COMPONENT = false; await Promise.all([ - global.SSR_BUNDLER_CTX?.dispose(), - global.BUNDLER_CTX?.dispose(), + global.BUNEXT_SSR_BUNDLER_CTX?.dispose(), + global.BUNEXT_BUNDLER_CTX?.dispose(), ]); - global.SSR_BUNDLER_CTX = undefined; - global.BUNDLER_CTX = undefined; + global.BUNEXT_SSR_BUNDLER_CTX = undefined; + global.BUNEXT_BUNDLER_CTX = undefined; } diff --git a/dist/functions/bundler/bun-react-modules-bundler.js b/dist/functions/bundler/bun-react-modules-bundler.js index d7953b9..8a72a1b 100644 --- a/dist/functions/bundler/bun-react-modules-bundler.js +++ b/dist/functions/bundler/bun-react-modules-bundler.js @@ -62,7 +62,7 @@ export default async function bunReactModulesBundler() { }); rmSync(tmpDir, { force: true, recursive: true }); const PUBLIC_ROOT = BUNEXT_VENDOR_DIR.replace(BUNX_CWD_DIR, "/.bunext"); - global.REACT_IMPORTS_MAP = { + global.BUNEXT_REACT_IMPORTS_MAP = { imports: { react: `${PUBLIC_ROOT}/react.js`, "react-dom": `${PUBLIC_ROOT}/react-dom.js`, diff --git a/dist/functions/bundler/pages-ssr-bundler.js b/dist/functions/bundler/pages-ssr-bundler.js index 061b638..66c67d9 100644 --- a/dist/functions/bundler/pages-ssr-bundler.js +++ b/dist/functions/bundler/pages-ssr-bundler.js @@ -16,7 +16,7 @@ export default async function pagesSSRBundler(params) { include_server: true, }); const dev = isDevelopment(); - const config = global.CONFIG; + const config = global.BUNEXT_CONFIG; try { writeFileSync(path.join(BUNX_TMP_DIR, "ssr-pages.json"), JSON.stringify(pages, null, 4)); } @@ -88,7 +88,7 @@ export default async function pagesSSRBundler(params) { }); } catch (error) { - global.SSR_BUNDLER_CTX_DISPOSED = true; + global.BUNEXT_SSR_BUNDLER_CTX_DISPOSED = true; log.error(`SSR Bundler Error: ${error}`); } } diff --git a/dist/functions/bundler/pages-ssr-context-bundler.js b/dist/functions/bundler/pages-ssr-context-bundler.js index 67d1dc9..7ffccac 100644 --- a/dist/functions/bundler/pages-ssr-context-bundler.js +++ b/dist/functions/bundler/pages-ssr-context-bundler.js @@ -11,9 +11,9 @@ const { BUNX_CWD_MODULE_CACHE_DIR } = grabDirNames(); export default async function pagesSSRContextBundler(params) { const pages = grabAllPages(); const dev = isDevelopment(); - if (global.SSR_BUNDLER_CTX) { - await global.SSR_BUNDLER_CTX.dispose(); - global.SSR_BUNDLER_CTX = undefined; + if (global.BUNEXT_SSR_BUNDLER_CTX) { + await global.BUNEXT_SSR_BUNDLER_CTX.dispose(); + global.BUNEXT_SSR_BUNDLER_CTX = undefined; } const entryToPage = new Map(); const { root_file_path } = grabRootFilePath(); @@ -32,7 +32,7 @@ export default async function pagesSSRContextBundler(params) { entryToPage.set(page.local_path, { ...page, tsx }); } const entryPoints = [...entryToPage.keys()].map((e) => `ssr-virtual:${e}`); - global.SSR_BUNDLER_CTX = await esbuild.context({ + global.BUNEXT_SSR_BUNDLER_CTX = await esbuild.context({ entryPoints, outdir: BUNX_CWD_MODULE_CACHE_DIR, bundle: true, @@ -65,5 +65,5 @@ export default async function pagesSSRContextBundler(params) { ], // logLevel: "silent", }); - await global.SSR_BUNDLER_CTX.rebuild(); + await global.BUNEXT_SSR_BUNDLER_CTX.rebuild(); } diff --git a/dist/functions/bundler/plugins/bun-skip-browser-plugin.js b/dist/functions/bundler/plugins/bun-skip-browser-plugin.js index dfc2770..d9cfaa3 100644 --- a/dist/functions/bundler/plugins/bun-skip-browser-plugin.js +++ b/dist/functions/bundler/plugins/bun-skip-browser-plugin.js @@ -5,7 +5,7 @@ const BunSkipNonBrowserPlugin = { const skipFilter = /^(bun:|node:|fs$|path$|os$|crypto$|net$|events$|util$|tls$|url$|process$)/; // const skipped_modules = new Set(); build.onResolve({ filter: skipFilter }, (args) => { - global.SKIPPED_BROWSER_MODULES.add(args.path); + global.BUNEXT_SKIPPED_BROWSER_MODULES.add(args.path); return { path: args.path, namespace: "skipped", @@ -13,8 +13,8 @@ const BunSkipNonBrowserPlugin = { }; }); // build.onEnd(() => { - // log.warn(`global.SKIPPED_BROWSER_MODULES`, [ - // ...global.SKIPPED_BROWSER_MODULES, + // log.warn(`global.BUNEXT_SKIPPED_BROWSER_MODULES`, [ + // ...global.BUNEXT_SKIPPED_BROWSER_MODULES, // ]); // }); // build.onResolve({ filter: /^[^./]/ }, (args) => { diff --git a/dist/functions/bundler/plugins/esbuild-ctx-artifact-tracker.js b/dist/functions/bundler/plugins/esbuild-ctx-artifact-tracker.js index de3786a..3711699 100644 --- a/dist/functions/bundler/plugins/esbuild-ctx-artifact-tracker.js +++ b/dist/functions/bundler/plugins/esbuild-ctx-artifact-tracker.js @@ -17,29 +17,29 @@ export default function esbuildCTXArtifactTracker({ entryToPage, post_build_fn, name: "artifact-tracker", setup(build) { build.onStart(async () => { - global.MAIN_CTX_BUILD_STARTS++; + global.BUNEXT_MAIN_CTX_BUILD_STARTS++; build_start = performance.now(); const does_error_file_exist = existsSync(BUNX_BUNDLER_ERROR_EXIT_FILE); - if (global.MAIN_CTX_BUILD_STARTS >= MAX_BUILD_STARTS && + if (global.BUNEXT_MAIN_CTX_BUILD_STARTS >= MAX_BUILD_STARTS && !does_error_file_exist) { await buildOnstartErrorHandler(); } }); build.onEnd(async (result) => { if (result.errors.length > 0) { - global.RECOMPILING = false; - global.IS_SERVER_COMPONENT = false; + global.BUNEXT_RECOMPILING = false; + global.BUNEXT_IS_SERVER_COMPONENT = false; log.error(`Build errors:`); for (const err of result.errors) { log.error(` ${err.text}${err.location ? ` (${err.location.file}:${err.location.line}:${err.location.column})` : ""}`); } - for (let i = global.HMR_CONTROLLERS.length - 1; i >= 0; i--) { - const controller = global.HMR_CONTROLLERS[i]; + for (let i = global.BUNEXT_HMR_CONTROLLERS.length - 1; i >= 0; i--) { + const controller = global.BUNEXT_HMR_CONTROLLERS[i]; try { controller?.controller?.enqueue(`event: update\ndata: ${JSON.stringify({ reload: true })}\n\n`); } catch { - global.HMR_CONTROLLERS.splice(i, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(i, 1); } } return; @@ -51,16 +51,17 @@ export default function esbuildCTXArtifactTracker({ entryToPage, post_build_fn, if (artifacts?.[0] && artifacts.length > 0) { for (let i = 0; i < artifacts.length; i++) { const artifact = artifacts[i]; - if (artifact?.local_path && global.BUNDLER_CTX_MAP) { - global.BUNDLER_CTX_MAP[artifact.local_path] = - _.merge(global.BUNDLER_CTX_MAP[artifact.local_path], artifact); + if (artifact?.local_path && + global.BUNEXT_BUNDLER_CTX_MAP) { + global.BUNEXT_BUNDLER_CTX_MAP[artifact.local_path] = + _.merge(global.BUNEXT_BUNDLER_CTX_MAP[artifact.local_path], artifact); } } } const elapsed = (performance.now() - build_start).toFixed(0); log.success(`[Built] in ${elapsed}ms`); - global.MAIN_CTX_BUILD_STARTS = 0; - global.BUNDLER_CTX_DISPOSED = false; + global.BUNEXT_MAIN_CTX_BUILD_STARTS = 0; + global.BUNEXT_BUNDLER_CTX_DISPOSED = false; const does_error_file_exist = existsSync(BUNX_BUNDLER_ERROR_EXIT_FILE); // SSR must finish before HMR so server props are fresh if (build_only) { @@ -94,8 +95,8 @@ export default function esbuildCTXArtifactTracker({ entryToPage, post_build_fn, } } } - global.RECOMPILING = false; - global.IS_SERVER_COMPONENT = false; + global.BUNEXT_RECOMPILING = false; + global.BUNEXT_IS_SERVER_COMPONENT = false; }); }, }; diff --git a/dist/functions/bundler/plugins/ssr-ctx-artifact-tracker.js b/dist/functions/bundler/plugins/ssr-ctx-artifact-tracker.js index b601bee..7d5cf0e 100644 --- a/dist/functions/bundler/plugins/ssr-ctx-artifact-tracker.js +++ b/dist/functions/bundler/plugins/ssr-ctx-artifact-tracker.js @@ -15,19 +15,19 @@ export default function ssrCTXArtifactTracker({ entryToPage, post_build_fn, }) { build_starts++; build_start = performance.now(); if (build_starts == MAX_BUILD_STARTS) { - global.SSR_BUNDLER_CTX_DISPOSED = true; - await global.SSR_BUNDLER_CTX?.dispose(); - global.SSR_BUNDLER_CTX = undefined; + global.BUNEXT_SSR_BUNDLER_CTX_DISPOSED = true; + await global.BUNEXT_SSR_BUNDLER_CTX?.dispose(); + global.BUNEXT_SSR_BUNDLER_CTX = undefined; } }); build.onEnd(async (result) => { if (result.errors.length > 0) { - global.SSR_BUNDLER_CTX_DISPOSED = true; + global.BUNEXT_SSR_BUNDLER_CTX_DISPOSED = true; try { - await global.SSR_BUNDLER_CTX?.dispose(); + await global.BUNEXT_SSR_BUNDLER_CTX?.dispose(); } catch { } - global.SSR_BUNDLER_CTX = undefined; + global.BUNEXT_SSR_BUNDLER_CTX = undefined; build_starts = 0; for (const err of result.errors) { console.error(`SSR Build error: ${err.text}${err.location ? ` (${err.location.file}:${err.location.line}:${err.location.column})` : ""}`); @@ -43,9 +43,8 @@ export default function ssrCTXArtifactTracker({ entryToPage, post_build_fn, }) { for (let i = 0; i < artifacts.length; i++) { const artifact = artifacts[i]; if (artifact?.local_path && - global.SSR_BUNDLER_CTX_MAP) { - global.SSR_BUNDLER_CTX_MAP[artifact.local_path] = - artifact; + global.BUNEXT_SSR_BUNDLER_CTX_MAP) { + global.BUNEXT_SSR_BUNDLER_CTX_MAP[artifact.local_path] = artifact; } } // post_build_fn?.({ artifacts }); @@ -55,10 +54,10 @@ export default function ssrCTXArtifactTracker({ entryToPage, post_build_fn, }) { // log.success(`SSR [Built] in ${elapsed}ms`); } try { - writeFileSync(path.join(BUNX_TMP_DIR, "ctx-map.json"), JSON.stringify(global.SSR_BUNDLER_CTX_MAP, null, 4)); + writeFileSync(path.join(BUNX_TMP_DIR, "ctx-map.json"), JSON.stringify(global.BUNEXT_SSR_BUNDLER_CTX_MAP, null, 4)); } catch (error) { } - global.SSR_BUNDLER_CTX_DISPOSED = false; + global.BUNEXT_SSR_BUNDLER_CTX_DISPOSED = false; }); }, }; diff --git a/dist/functions/bundler/react-modules-bundler.js b/dist/functions/bundler/react-modules-bundler.js index 997c6ad..0bb7d65 100644 --- a/dist/functions/bundler/react-modules-bundler.js +++ b/dist/functions/bundler/react-modules-bundler.js @@ -65,7 +65,7 @@ export default async function reactModulesBundler() { }); rmSync(tmpDir, { force: true, recursive: true }); const PUBLIC_ROOT = BUNEXT_VENDOR_DIR.replace(BUNX_CWD_DIR, "/.bunext"); - global.REACT_IMPORTS_MAP = { + global.BUNEXT_REACT_IMPORTS_MAP = { imports: { react: `${PUBLIC_ROOT}/react.js`, "react-dom": `${PUBLIC_ROOT}/react-dom.js`, diff --git a/dist/functions/bundler/record-artifacts.js b/dist/functions/bundler/record-artifacts.js index ff1c4c6..629c718 100644 --- a/dist/functions/bundler/record-artifacts.js +++ b/dist/functions/bundler/record-artifacts.js @@ -8,8 +8,8 @@ export default async function recordArtifacts({ artifacts, page_file_paths, }) { artifacts_map[artifact.local_path] = artifact; } } - if (global.BUNDLER_CTX_MAP) { - global.BUNDLER_CTX_MAP = _.merge(global.BUNDLER_CTX_MAP, artifacts_map); + if (global.BUNEXT_BUNDLER_CTX_MAP) { + global.BUNEXT_BUNDLER_CTX_MAP = _.merge(global.BUNEXT_BUNDLER_CTX_MAP, artifacts_map); } // await Bun.write( // HYDRATION_DST_DIR_MAP_JSON_FILE, diff --git a/dist/functions/bunext-init.d.ts b/dist/functions/bunext-init.d.ts index c90c78b..04f9c6b 100644 --- a/dist/functions/bunext-init.d.ts +++ b/dist/functions/bunext-init.d.ts @@ -8,44 +8,44 @@ import type { FSWatcher } from "fs"; * # Declare Global Variables */ declare global { - var CONFIG: BunextConfig; - var SERVER: Server | undefined; - var RECOMPILING: boolean; - var BUILDING_SSR: boolean; - var IS_SERVER_COMPONENT: boolean; - var WATCHER_TIMEOUT: any; - var ROUTER: FileSystemRouter; - var HMR_CONTROLLERS: GlobalHMRControllerObject[]; - var LAST_BUILD_TIME: number; - var BUNDLER_CTX_MAP: { + var BUNEXT_CONFIG: BunextConfig; + var BUNEXT_SERVER: Server | undefined; + var BUNEXT_RECOMPILING: boolean; + var BUNEXT_BUILDING_SSR: boolean; + var BUNEXT_IS_SERVER_COMPONENT: boolean; + var BUNEXT_WATCHER_TIMEOUT: any; + var BUNEXT_ROUTER: FileSystemRouter; + var BUNEXT_HMR_CONTROLLERS: GlobalHMRControllerObject[]; + var BUNEXT_LAST_BUILD_TIME: number; + var BUNEXT_BUNDLER_CTX_MAP: { [k: string]: BundlerCTXMap; }; - var SSR_BUNDLER_CTX_MAP: { + var BUNEXT_SSR_BUNDLER_CTX_MAP: { [k: string]: BundlerCTXMap; }; - var BUNDLER_REBUILDS: 0; - var PAGES_SRC_WATCHER: FSWatcher | undefined; - var CURRENT_VERSION: string | undefined; - var PAGE_FILES: PageFiles[]; - var ROOT_FILE_UPDATED: boolean; - var SKIPPED_BROWSER_MODULES: Set; - var BUNDLER_CTX: BuildContext | undefined; - var SSR_BUNDLER_CTX: BuildContext | undefined; - var DIR_NAMES: DirNames; - var REACT_IMPORTS_MAP: { + var BUNEXT_BUNDLER_REBUILDS: 0; + var BUNEXT_PAGES_SRC_WATCHER: FSWatcher | undefined; + var BUNEXT_CURRENT_VERSION: string | undefined; + var BUNEXT_PAGE_FILES: PageFiles[]; + var BUNEXT_ROOT_FILE_UPDATED: boolean; + var BUNEXT_SKIPPED_BROWSER_MODULES: Set; + var BUNEXT_BUNDLER_CTX: BuildContext | undefined; + var BUNEXT_SSR_BUNDLER_CTX: BuildContext | undefined; + var BUNEXT_DIR_NAMES: DirNames; + var BUNEXT_REACT_IMPORTS_MAP: { imports: Record; }; - var REACT_DOM_SERVER: any; - var REACT_DOM_MODULE_CACHE: Map; - var BUNDLER_CTX_DISPOSED: boolean | undefined; - var SSR_BUNDLER_CTX_DISPOSED: boolean | undefined; - var REBUILD_RETRIES: number; - var IS_404_PAGE: boolean; - var CONSTANTS: ReturnType; - var MAIN_CTX_BUILD_STARTS: number; + var BUNEXT_BUNDLER_CTX_DISPOSED: boolean | undefined; + var BUNEXT_SSR_BUNDLER_CTX_DISPOSED: boolean | undefined; + var BUNEXT_REBUILD_RETRIES: number; + var BUNEXT_IS_404_PAGE: boolean; + var BUNEXT_CONSTANTS: ReturnType; + var BUNEXT_MAIN_CTX_BUILD_STARTS: number; } type Params = { build_only?: boolean; diff --git a/dist/functions/bunext-init.js b/dist/functions/bunext-init.js index 607c6d3..67401ae 100644 --- a/dist/functions/bunext-init.js +++ b/dist/functions/bunext-init.js @@ -11,27 +11,27 @@ import watcherEsbuildCTX from "./server/watcher-esbuild-ctx"; const dirNames = grabDirNames(); const { PAGES_DIR } = dirNames; export default async function bunextInit(params) { - global.HMR_CONTROLLERS = []; - global.BUNDLER_CTX_MAP = {}; - global.SSR_BUNDLER_CTX_MAP = {}; - // global.API_ROUTES_BUNDLER_CTX_MAP = {}; - global.BUNDLER_REBUILDS = 0; - global.REBUILD_RETRIES = 0; - global.PAGE_FILES = []; - global.SKIPPED_BROWSER_MODULES = new Set(); - global.DIR_NAMES = dirNames; - global.REACT_IMPORTS_MAP = { imports: {} }; - global.REACT_DOM_MODULE_CACHE = new Map(); - global.MAIN_CTX_BUILD_STARTS = 0; + global.BUNEXT_HMR_CONTROLLERS = []; + global.BUNEXT_BUNDLER_CTX_MAP = {}; + global.BUNEXT_SSR_BUNDLER_CTX_MAP = {}; + // global.BUNEXT_API_ROUTES_BUNDLER_CTX_MAP = {}; + global.BUNEXT_BUNDLER_REBUILDS = 0; + global.BUNEXT_REBUILD_RETRIES = 0; + global.BUNEXT_PAGE_FILES = []; + global.BUNEXT_SKIPPED_BROWSER_MODULES = new Set(); + global.BUNEXT_DIR_NAMES = dirNames; + global.BUNEXT_REACT_IMPORTS_MAP = { imports: {} }; + global.BUNEXT_REACT_DOM_MODULE_CACHE = new Map(); + global.BUNEXT_MAIN_CTX_BUILD_STARTS = 0; await init(); log.banner(); - global.CONSTANTS = grabConstants(); + global.BUNEXT_CONSTANTS = grabConstants(); await reactModulesBundler(); const router = new Bun.FileSystemRouter({ style: "nextjs", dir: PAGES_DIR, }); - global.ROUTER = router; + global.BUNEXT_ROUTER = router; const is_dev = isDevelopment(); if (params?.build_only) { log.build(`Building Modules ...`); diff --git a/dist/functions/cache/trim-cache-key.js b/dist/functions/cache/trim-cache-key.js index 72eb3d1..86f6b89 100644 --- a/dist/functions/cache/trim-cache-key.js +++ b/dist/functions/cache/trim-cache-key.js @@ -9,7 +9,7 @@ export default async function trimCacheKey({ key, }) { const { cache_name, cache_meta_name } = grabCacheNames({ key, }); - const config = global.CONFIG; + const config = global.BUNEXT_CONFIG; const default_expiry_time_seconds = config.default_cache_expiry || AppData["DefaultCacheExpiryTimeSeconds"]; const default_expiry_time_milliseconds = default_expiry_time_seconds * 1000; diff --git a/dist/functions/init.js b/dist/functions/init.js index 70d5a44..ae977aa 100644 --- a/dist/functions/init.js +++ b/dist/functions/init.js @@ -24,7 +24,7 @@ export default async function () { try { const package_json = await Bun.file(path.resolve(__dirname, "../../package.json")).json(); const current_version = package_json.version; - global.CURRENT_VERSION = current_version; + global.BUNEXT_CURRENT_VERSION = current_version; } catch (error) { } const keys = Object.keys(dirNames); @@ -45,7 +45,7 @@ export default async function () { } } const config = (await grabConfig()) || {}; - global.CONFIG = { + global.BUNEXT_CONFIG = { ...config, development: is_dev, }; diff --git a/dist/functions/server/bunext-req-handler.js b/dist/functions/server/bunext-req-handler.js index b0cbb0b..109cf12 100644 --- a/dist/functions/server/bunext-req-handler.js +++ b/dist/functions/server/bunext-req-handler.js @@ -19,8 +19,8 @@ export default async function bunextRequestHandler({ req: initial_req, server, } return Response.json({ success: false, msg: `Invalid Path` }); } let response = undefined; - if (global.CONSTANTS.config?.middleware) { - const middleware_res = await global.CONSTANTS.config.middleware({ + if (global.BUNEXT_CONSTANTS.config?.middleware) { + const middleware_res = await global.BUNEXT_CONSTANTS.config.middleware({ req: initial_req, url, }); diff --git a/dist/functions/server/chokidar-watcher-esbuild-ctx.js b/dist/functions/server/chokidar-watcher-esbuild-ctx.js index 1949e71..af825df 100644 --- a/dist/functions/server/chokidar-watcher-esbuild-ctx.js +++ b/dist/functions/server/chokidar-watcher-esbuild-ctx.js @@ -32,17 +32,17 @@ export default async function chokadirWatcherEsbuildCTX() { await fullRebuild(); return; } - if (global.BUNDLER_CTX_DISPOSED) { + if (global.BUNEXT_BUNDLER_CTX_DISPOSED) { await fullRebuild({ msg: `Restarting Bundler ...` }); } - if (global.SSR_BUNDLER_CTX_DISPOSED) { + if (global.BUNEXT_SSR_BUNDLER_CTX_DISPOSED) { await pagesSSRBundler().catch((error) => { log.error(`SSR Bundler Error: ${error}`); }); } if (filename.match(/\/styles$/) || filename === "styles") { owns_recompile = true; - global.RECOMPILING = true; + global.BUNEXT_RECOMPILING = true; await Bun.sleep(1000); await fullRebuild({ msg: `Detected new \`styles\` directory. Rebuilding ...`, @@ -58,24 +58,24 @@ export default async function chokadirWatcherEsbuildCTX() { const target_files_match = /\.(tsx?|jsx?|css)$/; if (event === "change") { if (filename.match(target_files_match)) { - if (global.RECOMPILING) + if (global.BUNEXT_RECOMPILING) return; owns_recompile = true; - global.RECOMPILING = true; + global.BUNEXT_RECOMPILING = true; if (filename.match(/.*\.server\.tsx?/)) { - global.IS_SERVER_COMPONENT = true; + global.BUNEXT_IS_SERVER_COMPONENT = true; } - if (global.BUNDLER_CTX) { - await global.BUNDLER_CTX.rebuild(); + if (global.BUNEXT_BUNDLER_CTX) { + await global.BUNEXT_BUNDLER_CTX.rebuild(); } if (filename.match(/(404|500)\.tsx?/)) { - for (let i = global.HMR_CONTROLLERS.length - 1; i >= 0; i--) { - const controller = global.HMR_CONTROLLERS[i]; + for (let i = global.BUNEXT_HMR_CONTROLLERS.length - 1; i >= 0; i--) { + const controller = global.BUNEXT_HMR_CONTROLLERS[i]; try { controller?.controller?.enqueue(`event: update\ndata: ${JSON.stringify({ reload: true })}\n\n`); } catch { - global.HMR_CONTROLLERS.splice(i, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(i, 1); } } } @@ -92,7 +92,7 @@ export default async function chokadirWatcherEsbuildCTX() { filename.includes(" ")) { return reloadWatcher(); } - if (global.RECOMPILING) + if (global.BUNEXT_RECOMPILING) return; owns_recompile = true; const action = event.startsWith("add") ? "created" : "deleted"; @@ -113,8 +113,8 @@ export default async function chokadirWatcherEsbuildCTX() { } finally { if (owns_recompile) { - global.RECOMPILING = false; - global.IS_SERVER_COMPONENT = false; + global.BUNEXT_RECOMPILING = false; + global.BUNEXT_IS_SERVER_COMPONENT = false; } } }; @@ -126,8 +126,8 @@ export default async function chokadirWatcherEsbuildCTX() { .on("unlinkDir", (path) => handleEvent("unlinkDir", path)); } function reloadWatcher() { - if (global.PAGES_SRC_WATCHER) { - global.PAGES_SRC_WATCHER.close(); + if (global.BUNEXT_PAGES_SRC_WATCHER) { + global.BUNEXT_PAGES_SRC_WATCHER.close(); chokadirWatcherEsbuildCTX(); } } diff --git a/dist/functions/server/full-rebuild.js b/dist/functions/server/full-rebuild.js index 234c2f8..7a3664f 100644 --- a/dist/functions/server/full-rebuild.js +++ b/dist/functions/server/full-rebuild.js @@ -5,16 +5,16 @@ import watcherEsbuildCTX from "./watcher-esbuild-ctx"; export default async function fullRebuild(params) { try { const { msg } = params || {}; - global.RECOMPILING = true; + global.BUNEXT_RECOMPILING = true; if (msg) { log.watch(msg); } - global.ROUTER.reload(); + global.BUNEXT_ROUTER.reload(); try { - await global.BUNDLER_CTX?.dispose(); - global.BUNDLER_CTX = undefined; - await global.SSR_BUNDLER_CTX?.dispose(); - global.SSR_BUNDLER_CTX = undefined; + await global.BUNEXT_BUNDLER_CTX?.dispose(); + global.BUNEXT_BUNDLER_CTX = undefined; + await global.BUNEXT_SSR_BUNDLER_CTX?.dispose(); + global.BUNEXT_SSR_BUNDLER_CTX = undefined; } catch (error) { } await allPagesESBuildContextBundler({ @@ -27,11 +27,11 @@ export default async function fullRebuild(params) { log.error(error); } finally { - global.RECOMPILING = false; - global.IS_SERVER_COMPONENT = false; + global.BUNEXT_RECOMPILING = false; + global.BUNEXT_IS_SERVER_COMPONENT = false; } - if (global.PAGES_SRC_WATCHER) { - global.PAGES_SRC_WATCHER.close(); + if (global.BUNEXT_PAGES_SRC_WATCHER) { + global.BUNEXT_PAGES_SRC_WATCHER.close(); watcherEsbuildCTX(); } } diff --git a/dist/functions/server/handle-hmr.js b/dist/functions/server/handle-hmr.js index 851723f..e455bde 100644 --- a/dist/functions/server/handle-hmr.js +++ b/dist/functions/server/handle-hmr.js @@ -1,7 +1,7 @@ function removeController(controller) { - const idx = global.HMR_CONTROLLERS.findIndex((c) => c.controller == controller); + const idx = global.BUNEXT_HMR_CONTROLLERS.findIndex((c) => c.controller == controller); if (typeof idx == "number" && idx >= 0) { - global.HMR_CONTROLLERS.splice(idx, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(idx, 1); } } export default async function ({ req }) { @@ -17,16 +17,16 @@ export default async function ({ req }) { catch { return new Response("Invalid Referer Header", { status: 400 }); } - const match = global.ROUTER.match(referer_url.pathname); + const match = global.BUNEXT_ROUTER.match(referer_url.pathname); const target_map = match?.filePath - ? global.BUNDLER_CTX_MAP?.[match.filePath] + ? global.BUNEXT_BUNDLER_CTX_MAP?.[match.filePath] : undefined; let controller; let heartbeat; const stream = new ReadableStream({ start(c) { controller = c; - global.HMR_CONTROLLERS.push({ + global.BUNEXT_HMR_CONTROLLERS.push({ controller: c, page_url: referer_url.href, target_map, diff --git a/dist/functions/server/handle-routes.js b/dist/functions/server/handle-routes.js index 7ab65d3..5e1a7d8 100644 --- a/dist/functions/server/handle-routes.js +++ b/dist/functions/server/handle-routes.js @@ -30,8 +30,8 @@ export default async function ({ req }) { }); let module; const now = Date.now(); - if (is_dev && global.SSR_BUNDLER_CTX_MAP?.[match.filePath]?.path) { - const target_import = path.join(ROOT_DIR, global.SSR_BUNDLER_CTX_MAP[match.filePath].path); + if (is_dev && global.BUNEXT_SSR_BUNDLER_CTX_MAP?.[match.filePath]?.path) { + const target_import = path.join(ROOT_DIR, global.BUNEXT_SSR_BUNDLER_CTX_MAP[match.filePath].path); module = await import(`${target_import}?t=${now}`); } else { diff --git a/dist/functions/server/server-post-build-fn.js b/dist/functions/server/server-post-build-fn.js index 458ece8..241c85f 100644 --- a/dist/functions/server/server-post-build-fn.js +++ b/dist/functions/server/server-post-build-fn.js @@ -1,13 +1,13 @@ import _ from "lodash"; import grabPageComponent from "./web-pages/grab-page-component"; export default async function serverPostBuildFn(params) { - if (!global.HMR_CONTROLLERS?.[0] || !global.BUNDLER_CTX_MAP) { + if (!global.BUNEXT_HMR_CONTROLLERS?.[0] || !global.BUNEXT_BUNDLER_CTX_MAP) { return; } const reload_payload = { reload: true }; const reload_enqueue = `event: update\ndata: ${JSON.stringify(reload_payload)}\n\n`; - for (let i = global.HMR_CONTROLLERS.length - 1; i >= 0; i--) { - const controller = global.HMR_CONTROLLERS[i]; + for (let i = global.BUNEXT_HMR_CONTROLLERS.length - 1; i >= 0; i--) { + const controller = global.BUNEXT_HMR_CONTROLLERS[i]; if (!controller) { continue; } @@ -19,17 +19,17 @@ export default async function serverPostBuildFn(params) { controller.controller.enqueue(reload_enqueue); } catch { - global.HMR_CONTROLLERS.splice(i, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(i, 1); } continue; } - const target_artifact = global.BUNDLER_CTX_MAP[controller.target_map.local_path]; + const target_artifact = global.BUNEXT_BUNDLER_CTX_MAP[controller.target_map.local_path]; if (!target_artifact?.local_path) { try { controller.controller.enqueue(reload_enqueue); } catch { - global.HMR_CONTROLLERS.splice(i, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(i, 1); } continue; } @@ -59,17 +59,17 @@ export default async function serverPostBuildFn(params) { final_artifact.page_props = serverRes || {}; try { let final_data = {}; - if (global.ROOT_FILE_UPDATED) { + if (global.BUNEXT_ROOT_FILE_UPDATED) { final_data = reload_payload; } else { final_data = final_artifact; } controller.controller.enqueue(`event: update\ndata: ${JSON.stringify(final_data)}\n\n`); - global.ROOT_FILE_UPDATED = false; + global.BUNEXT_ROOT_FILE_UPDATED = false; } catch { - global.HMR_CONTROLLERS.splice(i, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(i, 1); } } } diff --git a/dist/functions/server/start-server.js b/dist/functions/server/start-server.js index 1eb4728..4378cba 100644 --- a/dist/functions/server/start-server.js +++ b/dist/functions/server/start-server.js @@ -4,7 +4,7 @@ import serverParamsGen from "./server-params-gen"; export default async function startServer() { const serverParams = await serverParamsGen(); const server = Bun.serve(serverParams); - global.SERVER = server; + global.BUNEXT_SERVER = server; log.server(`http://${server.hostname}:${server.port}`); return server; } diff --git a/dist/functions/server/watcher-esbuild-ctx.js b/dist/functions/server/watcher-esbuild-ctx.js index af97036..c0fc7b7 100644 --- a/dist/functions/server/watcher-esbuild-ctx.js +++ b/dist/functions/server/watcher-esbuild-ctx.js @@ -17,9 +17,9 @@ export default async function watcherEsbuildCTX() { if (!filename) return; const full_file_path = path.join(ROOT_DIR, filename); - if (global.CONFIG.exclude_watch_patterns) { - for (let i = 0; i < global.CONFIG.exclude_watch_patterns.length; i++) { - const watch_pattern = global.CONFIG.exclude_watch_patterns[i]; + if (global.BUNEXT_CONFIG.exclude_watch_patterns) { + for (let i = 0; i < global.BUNEXT_CONFIG.exclude_watch_patterns.length; i++) { + const watch_pattern = global.BUNEXT_CONFIG.exclude_watch_patterns[i]; if (watch_pattern instanceof RegExp) { const is_path_excluded = watch_pattern.test(filename); if (is_path_excluded) { @@ -41,11 +41,11 @@ export default async function watcherEsbuildCTX() { if (filename.match(/^\.\w+/)) { return; } - if (global.BUNDLER_CTX_DISPOSED) { + if (global.BUNEXT_BUNDLER_CTX_DISPOSED) { await fullRebuild({ msg: `Restarting Bundler ...` }); return; } - if (global.SSR_BUNDLER_CTX_DISPOSED) { + if (global.BUNEXT_SSR_BUNDLER_CTX_DISPOSED) { await pagesSSRBundler().catch((error) => { log.error(`SSR Bundler Error: ${error}`); }); @@ -59,7 +59,7 @@ export default async function watcherEsbuildCTX() { : undefined; if (full_file_path.match(/\/styles$/)) { owns_recompile = true; - global.RECOMPILING = true; + global.BUNEXT_RECOMPILING = true; await Bun.sleep(1000); await fullRebuild({ msg: `Detected new \`styles\` directory. Rebuilding ...`, @@ -78,24 +78,24 @@ export default async function watcherEsbuildCTX() { const target_files_match = /\.(tsx?|jsx?|css)$/; if (event !== "rename") { if (filename.match(target_files_match)) { - if (global.RECOMPILING) + if (global.BUNEXT_RECOMPILING) return; owns_recompile = true; - global.RECOMPILING = true; + global.BUNEXT_RECOMPILING = true; if (filename.match(/.*\.server\.tsx?/)) { - global.IS_SERVER_COMPONENT = true; + global.BUNEXT_IS_SERVER_COMPONENT = true; } - if (global.BUNDLER_CTX) { - await global.BUNDLER_CTX.rebuild(); + if (global.BUNEXT_BUNDLER_CTX) { + await global.BUNEXT_BUNDLER_CTX.rebuild(); } if (filename.match(/(404|500)\.tsx?/)) { - for (let i = global.HMR_CONTROLLERS.length - 1; i >= 0; i--) { - const controller = global.HMR_CONTROLLERS[i]; + for (let i = global.BUNEXT_HMR_CONTROLLERS.length - 1; i >= 0; i--) { + const controller = global.BUNEXT_HMR_CONTROLLERS[i]; try { controller?.controller?.enqueue(`event: update\ndata: ${JSON.stringify({ reload: true })}\n\n`); } catch { - global.HMR_CONTROLLERS.splice(i, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(i, 1); } } } @@ -113,7 +113,7 @@ export default async function watcherEsbuildCTX() { return reloadWatcher(); if (filename.match(/ /)) return reloadWatcher(); - if (global.RECOMPILING) + if (global.BUNEXT_RECOMPILING) return; owns_recompile = true; const action = does_file_exist ? "created" : "deleted"; @@ -133,16 +133,16 @@ export default async function watcherEsbuildCTX() { } finally { if (owns_recompile) { - global.RECOMPILING = false; - global.IS_SERVER_COMPONENT = false; + global.BUNEXT_RECOMPILING = false; + global.BUNEXT_IS_SERVER_COMPONENT = false; } } }); - global.PAGES_SRC_WATCHER = pages_src_watcher; + global.BUNEXT_PAGES_SRC_WATCHER = pages_src_watcher; } function reloadWatcher() { - if (global.PAGES_SRC_WATCHER) { - global.PAGES_SRC_WATCHER.close(); + if (global.BUNEXT_PAGES_SRC_WATCHER) { + global.BUNEXT_PAGES_SRC_WATCHER.close(); watcherEsbuildCTX(); } } diff --git a/dist/functions/server/web-pages/generate-web-html.js b/dist/functions/server/web-pages/generate-web-html.js index fbdf578..e1b4e76 100644 --- a/dist/functions/server/web-pages/generate-web-html.js +++ b/dist/functions/server/web-pages/generate-web-html.js @@ -48,13 +48,13 @@ export default async function genWebHTML({ component: Main, pageProps, bundledMa env: { NODE_ENV: dev ? "development" : "production", ...public_envs, - ...global.CONFIG.public_envs, + ...global.BUNEXT_CONFIG.public_envs, }, }; let final_component = (_jsxs("html", { ...html_props, children: [_jsxs("head", { children: [_jsx("meta", { charSet: "utf-8", "data-bunext-head": true }), _jsx("meta", { name: "viewport", content: "width=device-width, initial-scale=1.0", "data-bunext-head": true }), final_meta ? grabWebMetaHTML({ meta: final_meta }) : null, bundledMap?.css_path ? (_jsx("link", { rel: "stylesheet", href: `/${bundledMap.css_path}`, "data-bunext-head": true })) : null, _jsx("script", { dangerouslySetInnerHTML: { __html: `window.${ClientWindowPagePropsName} = ${serializedProps};\nwindow.process = ${JSON.stringify(client_process)}`, }, "data-bunext-head": true }), RootHead ? (_jsx(RootHead, { serverRes: pageProps, ctx: routeParams })) : null, Head ? _jsx(Head, { serverRes: pageProps, ctx: routeParams }) : null, bundledMap?.path ? (_jsxs(_Fragment, { children: [_jsx("script", { type: "importmap", dangerouslySetInnerHTML: { - __html: JSON.stringify(global.REACT_IMPORTS_MAP), + __html: JSON.stringify(global.BUNEXT_REACT_IMPORTS_MAP), }, defer: true, "data-bunext-head": true }), _jsx("script", { src: `/${bundledMap.path}`, type: "module", id: AppData["BunextClientHydrationScriptID"], defer: true, "data-bunext-head": true })] })) : null, is_dev ? (_jsx("script", { defer: true, dangerouslySetInnerHTML: { __html: page_hydration_script, }, "data-bunext-head": true })) : null] }), _jsx("body", { children: _jsx("div", { id: ClientRootElementIDName, suppressHydrationWarning: !dev, children: _jsx(Main, { ...pageProps }) }) })] })); 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 973d11c..237a64d 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 @@ -7,8 +7,8 @@ import grabDirNames from "../../../utils/grab-dir-names"; const { ROOT_DIR } = grabDirNames(); export default async function grabPageBundledReactComponent({ file_path, return_tsx_only, }) { try { - if (global.SSR_BUNDLER_CTX_MAP?.[file_path]) { - const abs = path.join(ROOT_DIR, global.SSR_BUNDLER_CTX_MAP[file_path].path); + if (global.BUNEXT_SSR_BUNDLER_CTX_MAP?.[file_path]) { + const abs = path.join(ROOT_DIR, global.BUNEXT_SSR_BUNDLER_CTX_MAP[file_path].path); // Loader.registry.delete(abs); const mod = await import(`${abs}?t=${Date.now()}`); const Main = mod.default; 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 80d6acd..0b60089 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 @@ -12,7 +12,7 @@ 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.SSR_BUNDLER_CTX_MAP[root_server_file_path || ""]; + const root_server_ctx_map = global.BUNEXT_SSR_BUNDLER_CTX_MAP[root_server_file_path || ""]; 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 +33,7 @@ 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.SSR_BUNDLER_CTX_MAP[server_file_path || ""]; + const page_server_ctx = global.BUNEXT_SSR_BUNDLER_CTX_MAP[server_file_path || ""]; const final_page_server_path = page_server_ctx?.local_path ? path.join(ROOT_DIR, page_server_ctx.path) : server_file_path; diff --git a/dist/functions/server/web-pages/grab-page-component.js b/dist/functions/server/web-pages/grab-page-component.js index 6744127..5df36f0 100644 --- a/dist/functions/server/web-pages/grab-page-component.js +++ b/dist/functions/server/web-pages/grab-page-component.js @@ -20,7 +20,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, is_hydration, } = params; const url = req?.url ? new URL(req.url) : undefined; - const router = global.ROUTER; + const router = global.BUNEXT_ROUTER; const is_dev = isDevelopment(); const forwarded_proto = req?.headers.get("x-forwarded-proto"); if (url && forwarded_proto) { @@ -50,7 +50,7 @@ export default async function grabPageComponent(params) { // log.error(errMsg); throw new Error(errMsg); } - let bundledMap = global.BUNDLER_CTX_MAP[file_path]; + let bundledMap = global.BUNEXT_BUNDLER_CTX_MAP[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.`); @@ -62,7 +62,7 @@ export default async function grabPageComponent(params) { msg: `Retrying Bundle map for file \`${file_path}\``, }); await Bun.sleep(1000); - bundledMap = global.BUNDLER_CTX_MAP[file_path]; + bundledMap = global.BUNEXT_BUNDLER_CTX_MAP[file_path]; if (bundledMap?.path) break; } @@ -73,7 +73,7 @@ export default async function grabPageComponent(params) { } } if (req && !is_hydration) { - global.BUNDLER_CTX_MAP[file_path].req_url = req.url; + global.BUNEXT_BUNDLER_CTX_MAP[file_path].req_url = req.url; } if (debug) { log.info(`bundledMap:`, bundledMap); @@ -115,8 +115,9 @@ export default async function grabPageComponent(params) { error?.name === "NotFoundError" || error?.status === 404; if (!params.retry && is_dev) { - while (global.REBUILD_RETRIES < 2) { - global.REBUILD_RETRIES = global.REBUILD_RETRIES + 1; + while (global.BUNEXT_REBUILD_RETRIES < 2) { + global.BUNEXT_REBUILD_RETRIES = + global.BUNEXT_REBUILD_RETRIES + 1; await fullRebuild(); await Bun.sleep(200); const component_retried = await grabPageComponent({ @@ -125,15 +126,15 @@ export default async function grabPageComponent(params) { }); if (component_retried instanceof Response || component_retried.success) { - global.REBUILD_RETRIES = 0; + global.BUNEXT_REBUILD_RETRIES = 0; await serverPostBuildFn(); return component_retried; } } - global.REBUILD_RETRIES = 0; + global.BUNEXT_REBUILD_RETRIES = 0; } if (is404) { - global.IS_404_PAGE = true; + global.BUNEXT_IS_404_PAGE = true; } else { log.error(`Error Grabbing Page Component: ${error.message}`); diff --git a/dist/functions/server/web-pages/grab-page-error-component.js b/dist/functions/server/web-pages/grab-page-error-component.js index 3f5226f..2b5a339 100644 --- a/dist/functions/server/web-pages/grab-page-error-component.js +++ b/dist/functions/server/web-pages/grab-page-error-component.js @@ -3,7 +3,7 @@ import grabDirNames from "../../../utils/grab-dir-names"; import grabPageModules from "./grab-page-modules"; import _ from "lodash"; export default async function grabPageErrorComponent({ error, routeParams, is404, url, }) { - const router = global.ROUTER; + const router = global.BUNEXT_ROUTER; const { BUNX_ROOT_500_PRESET_COMPONENT, BUNX_ROOT_404_PRESET_COMPONENT } = grabDirNames(); const errorRoute = is404 ? "/404" : "/500"; const presetComponent = is404 @@ -30,7 +30,7 @@ export default async function grabPageErrorComponent({ error, routeParams, is404 }; } const file_path = match.filePath; - const bundledMap = global.BUNDLER_CTX_MAP?.[file_path]; + const bundledMap = global.BUNEXT_BUNDLER_CTX_MAP?.[file_path]; const page_component = await grabPageModules({ file_path: file_path, query: match?.query, diff --git a/dist/functions/server/web-pages/grab-tsx-string-module.js b/dist/functions/server/web-pages/grab-tsx-string-module.js index a664ca4..e97a987 100644 --- a/dist/functions/server/web-pages/grab-tsx-string-module.js +++ b/dist/functions/server/web-pages/grab-tsx-string-module.js @@ -108,11 +108,12 @@ async function loadEntry(page_file_path) { const now = Date.now(); const mod_file_path = toModPath(page_file_path); const mod_css_path = mod_file_path.replace(/\.js$/, ".css"); - if (global.REACT_DOM_MODULE_CACHE.has(page_file_path)) { - return global.REACT_DOM_MODULE_CACHE.get(page_file_path)?.main; + if (global.BUNEXT_REACT_DOM_MODULE_CACHE.has(page_file_path)) { + return global.BUNEXT_REACT_DOM_MODULE_CACHE.get(page_file_path) + ?.main; } const mod = await import(`${mod_file_path}?t=${now}`); - global.REACT_DOM_MODULE_CACHE.set(page_file_path, { + global.BUNEXT_REACT_DOM_MODULE_CACHE.set(page_file_path, { main: mod, css: mod_css_path, }); diff --git a/dist/utils/check-excluded-patterns.js b/dist/utils/check-excluded-patterns.js index 8cc97df..f245ff9 100644 --- a/dist/utils/check-excluded-patterns.js +++ b/dist/utils/check-excluded-patterns.js @@ -1,6 +1,6 @@ export default function ({ path }) { - for (let i = 0; i < global.CONSTANTS.RouteIgnorePatterns.length; i++) { - const regex = global.CONSTANTS.RouteIgnorePatterns[i]; + for (let i = 0; i < global.BUNEXT_CONSTANTS.RouteIgnorePatterns.length; i++) { + const regex = global.BUNEXT_CONSTANTS.RouteIgnorePatterns[i]; if (path.match(regex)) return true; } diff --git a/dist/utils/grab-app-port.js b/dist/utils/grab-app-port.js index 9f25de5..41cd8f2 100644 --- a/dist/utils/grab-app-port.js +++ b/dist/utils/grab-app-port.js @@ -6,8 +6,8 @@ export default function grabAppPort() { if (process.env.PORT) { return numberfy(process.env.PORT); } - if (global.CONFIG.port) { - return global.CONFIG.port; + if (global.BUNEXT_CONFIG.port) { + return global.BUNEXT_CONFIG.port; } return numberfy(defaultPort); } diff --git a/dist/utils/grab-assets-prefix.js b/dist/utils/grab-assets-prefix.js index 661c7bd..22b0a31 100644 --- a/dist/utils/grab-assets-prefix.js +++ b/dist/utils/grab-assets-prefix.js @@ -1,7 +1,7 @@ import AppNames from "./grab-app-names"; export default function grabAssetsPrefix() { - if (global.CONFIG.assets_prefix) { - return global.CONFIG.assets_prefix; + if (global.BUNEXT_CONFIG.assets_prefix) { + return global.BUNEXT_CONFIG.assets_prefix; } const { defaultAssetPrefix } = AppNames; return defaultAssetPrefix; diff --git a/dist/utils/grab-constants.js b/dist/utils/grab-constants.js index 221f8ea..4bae63f 100644 --- a/dist/utils/grab-constants.js +++ b/dist/utils/grab-constants.js @@ -1,5 +1,5 @@ export default function grabConstants() { - const config = global.CONFIG; + const config = global.BUNEXT_CONFIG; const MB_IN_BYTES = 1024 * 1024; const ClientWindowPagePropsName = "__PAGE_PROPS__"; const ClientRootElementIDName = "__bunext"; diff --git a/dist/utils/grab-dir-names.js b/dist/utils/grab-dir-names.js index 9143ab3..f59c5f0 100644 --- a/dist/utils/grab-dir-names.js +++ b/dist/utils/grab-dir-names.js @@ -1,7 +1,7 @@ import path from "path"; export default function grabDirNames() { - if (global.DIR_NAMES) - return global.DIR_NAMES; + if (global.BUNEXT_DIR_NAMES) + return global.BUNEXT_DIR_NAMES; const ROOT_DIR = process.cwd(); const SRC_DIR = path.join(ROOT_DIR, "src"); const PAGES_DIR = path.join(SRC_DIR, "pages"); diff --git a/dist/utils/grab-origin.js b/dist/utils/grab-origin.js index badc4d7..c4c619f 100644 --- a/dist/utils/grab-origin.js +++ b/dist/utils/grab-origin.js @@ -1,7 +1,7 @@ import grabAppPort from "./grab-app-port"; export default function grabOrigin() { - if (global.CONFIG.origin) { - return global.CONFIG.origin; + if (global.BUNEXT_CONFIG.origin) { + return global.BUNEXT_CONFIG.origin; } const port = grabAppPort(); return `http://localhost:${port}`; diff --git a/dist/utils/grab-route-params.js b/dist/utils/grab-route-params.js index 24717e8..92c7513 100644 --- a/dist/utils/grab-route-params.js +++ b/dist/utils/grab-route-params.js @@ -16,7 +16,7 @@ export default async function grabRouteParams({ req, query: passed_query, }) { url, query: _.merge(query, passed_query), body, - server: global.SERVER, + server: global.BUNEXT_SERVER, }; return routeParams; } diff --git a/dist/utils/grab-router.js b/dist/utils/grab-router.js index a2b7775..84447b2 100644 --- a/dist/utils/grab-router.js +++ b/dist/utils/grab-router.js @@ -1,6 +1,6 @@ export default function grabRouter() { // if (process.env.NODE_ENV !== "production") { - // global.ROUTER.reload(); + // global.BUNEXT_ROUTER.reload(); // } - return global.ROUTER; + return global.BUNEXT_ROUTER; } diff --git a/dist/utils/log.js b/dist/utils/log.js index 3e89057..b84f4e1 100644 --- a/dist/utils/log.js +++ b/dist/utils/log.js @@ -21,5 +21,5 @@ export const log = { build: (msg) => console.log(`${prefix.build} ${chalk.magenta(msg)}`), watch: (msg) => console.log(`${prefix.watch} ${chalk.blue(msg)}`), server: (url) => console.log(`${prefix.success} ${chalk.white("Server running on")} ${chalk.cyan.underline(url)}`), - banner: () => console.log(`\n ${chalk.cyan.bold(AppNames.name)} ${chalk.gray(`v${global.CURRENT_VERSION || AppNames["version"]}`)}\n`), + banner: () => console.log(`\n ${chalk.cyan.bold(AppNames.name)} ${chalk.gray(`v${global.BUNEXT_CURRENT_VERSION || AppNames["version"]}`)}\n`), }; diff --git a/dist/utils/refresh-router.js b/dist/utils/refresh-router.js index e1ce2e1..9ab562d 100644 --- a/dist/utils/refresh-router.js +++ b/dist/utils/refresh-router.js @@ -5,5 +5,5 @@ export default function refreshRouter() { style: "nextjs", dir: PAGES_DIR, }); - global.ROUTER = router; + global.BUNEXT_ROUTER = router; } diff --git a/package.json b/package.json index e326ffb..e60c038 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/bunext", - "version": "1.0.104", + "version": "1.1.0", "main": "dist/index.js", "module": "index.ts", "dependencies": { diff --git a/src/commands/build/index.ts b/src/commands/build/index.ts index 4982f53..07bd00a 100644 --- a/src/commands/build/index.ts +++ b/src/commands/build/index.ts @@ -15,7 +15,7 @@ export default function () { rmSync(BUNX_CWD_PAGES_REWRITE_DIR, { recursive: true }); } catch (error) {} - global.SKIPPED_BROWSER_MODULES = new Set(); + global.BUNEXT_SKIPPED_BROWSER_MODULES = new Set(); await bunextInit({ build_only: true }); diff --git a/src/functions/bundler/all-pages-esbuild-context-bundler.ts b/src/functions/bundler/all-pages-esbuild-context-bundler.ts index d32bdd2..abbb0a2 100644 --- a/src/functions/bundler/all-pages-esbuild-context-bundler.ts +++ b/src/functions/bundler/all-pages-esbuild-context-bundler.ts @@ -32,7 +32,7 @@ export default async function allPagesESBuildContextBundler(params?: Params) { const pages = grabAllPages({ exclude_api: true }); - global.PAGE_FILES = pages; + global.BUNEXT_PAGE_FILES = pages; const dev = isDevelopment(); @@ -60,7 +60,7 @@ export default async function allPagesESBuildContextBundler(params?: Params) { (e) => `hydration-virtual:${e}`, ); - global.BUNDLER_CTX = await esbuild.context({ + global.BUNEXT_BUNDLER_CTX = await esbuild.context({ entryPoints, outdir: HYDRATION_DST_DIR, bundle: true, @@ -96,14 +96,14 @@ export default async function allPagesESBuildContextBundler(params?: Params) { "react-dom/client", "react/jsx-runtime", "react/jsx-dev-runtime", - ...(global.CONFIG.page_compiler_excludes || []), + ...(global.BUNEXT_CONFIG.page_compiler_excludes || []), ], logLevel: did_process_exit_because_of_bundler_error ? "silent" : undefined, }); - await global.BUNDLER_CTX.rebuild(); + await global.BUNEXT_BUNDLER_CTX.rebuild(); } catch (error) { console.log(`ESBUILD Error =>`, error); } diff --git a/src/functions/bundler/build-on-start-error-handler.ts b/src/functions/bundler/build-on-start-error-handler.ts index 20513db..ab2c557 100644 --- a/src/functions/bundler/build-on-start-error-handler.ts +++ b/src/functions/bundler/build-on-start-error-handler.ts @@ -4,23 +4,23 @@ export default async function buildOnstartErrorHandler(params?: Params) { // const error_msg = `Build Failed. Please check all your components and imports.`; // log.error(error_msg); - if (global.BUNDLER_CTX_DISPOSED) { + if (global.BUNEXT_BUNDLER_CTX_DISPOSED) { return; } // console.log(`Killing Bundler ...`); - // console.log(`global.BUNDLER_CTX_DISPOSED`, global.BUNDLER_CTX_DISPOSED); + // console.log(`global.BUNEXT_BUNDLER_CTX_DISPOSED`, global.BUNEXT_BUNDLER_CTX_DISPOSED); - global.BUNDLER_CTX_DISPOSED = true; + global.BUNEXT_BUNDLER_CTX_DISPOSED = true; - global.RECOMPILING = false; - global.IS_SERVER_COMPONENT = false; + global.BUNEXT_RECOMPILING = false; + global.BUNEXT_IS_SERVER_COMPONENT = false; await Promise.all([ - global.SSR_BUNDLER_CTX?.dispose(), - global.BUNDLER_CTX?.dispose(), + global.BUNEXT_SSR_BUNDLER_CTX?.dispose(), + global.BUNEXT_BUNDLER_CTX?.dispose(), ]); - global.SSR_BUNDLER_CTX = undefined; - global.BUNDLER_CTX = undefined; + global.BUNEXT_SSR_BUNDLER_CTX = undefined; + global.BUNEXT_BUNDLER_CTX = undefined; } diff --git a/src/functions/bundler/bun-react-modules-bundler.ts b/src/functions/bundler/bun-react-modules-bundler.ts index 7f7a0bd..e0b55ba 100644 --- a/src/functions/bundler/bun-react-modules-bundler.ts +++ b/src/functions/bundler/bun-react-modules-bundler.ts @@ -74,7 +74,7 @@ export default async function bunReactModulesBundler() { const PUBLIC_ROOT = BUNEXT_VENDOR_DIR.replace(BUNX_CWD_DIR, "/.bunext"); - global.REACT_IMPORTS_MAP = { + global.BUNEXT_REACT_IMPORTS_MAP = { imports: { react: `${PUBLIC_ROOT}/react.js`, "react-dom": `${PUBLIC_ROOT}/react-dom.js`, diff --git a/src/functions/bundler/pages-ssr-bundler.ts b/src/functions/bundler/pages-ssr-bundler.ts index 9a409ad..65acea3 100644 --- a/src/functions/bundler/pages-ssr-bundler.ts +++ b/src/functions/bundler/pages-ssr-bundler.ts @@ -23,7 +23,7 @@ export default async function pagesSSRBundler(params?: Params) { include_server: true, }); const dev = isDevelopment(); - const config = global.CONFIG; + const config = global.BUNEXT_CONFIG; try { writeFileSync( @@ -116,7 +116,7 @@ export default async function pagesSSRBundler(params?: Params) { splitting: true, }); } catch (error) { - global.SSR_BUNDLER_CTX_DISPOSED = true; + global.BUNEXT_SSR_BUNDLER_CTX_DISPOSED = true; log.error(`SSR Bundler Error: ${error}`); } } diff --git a/src/functions/bundler/pages-ssr-context-bundler.ts b/src/functions/bundler/pages-ssr-context-bundler.ts index 7318a50..5443122 100644 --- a/src/functions/bundler/pages-ssr-context-bundler.ts +++ b/src/functions/bundler/pages-ssr-context-bundler.ts @@ -19,9 +19,9 @@ export default async function pagesSSRContextBundler(params?: Params) { const pages = grabAllPages(); const dev = isDevelopment(); - if (global.SSR_BUNDLER_CTX) { - await global.SSR_BUNDLER_CTX.dispose(); - global.SSR_BUNDLER_CTX = undefined; + if (global.BUNEXT_SSR_BUNDLER_CTX) { + await global.BUNEXT_SSR_BUNDLER_CTX.dispose(); + global.BUNEXT_SSR_BUNDLER_CTX = undefined; } const entryToPage = new Map(); @@ -46,7 +46,7 @@ export default async function pagesSSRContextBundler(params?: Params) { const entryPoints = [...entryToPage.keys()].map((e) => `ssr-virtual:${e}`); - global.SSR_BUNDLER_CTX = await esbuild.context({ + global.BUNEXT_SSR_BUNDLER_CTX = await esbuild.context({ entryPoints, outdir: BUNX_CWD_MODULE_CACHE_DIR, bundle: true, @@ -82,5 +82,5 @@ export default async function pagesSSRContextBundler(params?: Params) { // logLevel: "silent", }); - await global.SSR_BUNDLER_CTX.rebuild(); + await global.BUNEXT_SSR_BUNDLER_CTX.rebuild(); } diff --git a/src/functions/bundler/plugins/bun-skip-browser-plugin.ts b/src/functions/bundler/plugins/bun-skip-browser-plugin.ts index 8052c4c..3e1ec20 100644 --- a/src/functions/bundler/plugins/bun-skip-browser-plugin.ts +++ b/src/functions/bundler/plugins/bun-skip-browser-plugin.ts @@ -9,7 +9,7 @@ const BunSkipNonBrowserPlugin: Bun.BunPlugin = { // const skipped_modules = new Set(); build.onResolve({ filter: skipFilter }, (args) => { - global.SKIPPED_BROWSER_MODULES.add(args.path); + global.BUNEXT_SKIPPED_BROWSER_MODULES.add(args.path); return { path: args.path, namespace: "skipped", @@ -18,8 +18,8 @@ const BunSkipNonBrowserPlugin: Bun.BunPlugin = { }); // build.onEnd(() => { - // log.warn(`global.SKIPPED_BROWSER_MODULES`, [ - // ...global.SKIPPED_BROWSER_MODULES, + // log.warn(`global.BUNEXT_SKIPPED_BROWSER_MODULES`, [ + // ...global.BUNEXT_SKIPPED_BROWSER_MODULES, // ]); // }); diff --git a/src/functions/bundler/plugins/esbuild-ctx-artifact-tracker.ts b/src/functions/bundler/plugins/esbuild-ctx-artifact-tracker.ts index c26dab9..263b206 100644 --- a/src/functions/bundler/plugins/esbuild-ctx-artifact-tracker.ts +++ b/src/functions/bundler/plugins/esbuild-ctx-artifact-tracker.ts @@ -36,7 +36,7 @@ export default function esbuildCTXArtifactTracker({ name: "artifact-tracker", setup(build) { build.onStart(async () => { - global.MAIN_CTX_BUILD_STARTS++; + global.BUNEXT_MAIN_CTX_BUILD_STARTS++; build_start = performance.now(); const does_error_file_exist = existsSync( @@ -44,7 +44,7 @@ export default function esbuildCTXArtifactTracker({ ); if ( - global.MAIN_CTX_BUILD_STARTS >= MAX_BUILD_STARTS && + global.BUNEXT_MAIN_CTX_BUILD_STARTS >= MAX_BUILD_STARTS && !does_error_file_exist ) { await buildOnstartErrorHandler(); @@ -53,8 +53,8 @@ export default function esbuildCTXArtifactTracker({ build.onEnd(async (result) => { if (result.errors.length > 0) { - global.RECOMPILING = false; - global.IS_SERVER_COMPONENT = false; + global.BUNEXT_RECOMPILING = false; + global.BUNEXT_IS_SERVER_COMPONENT = false; log.error(`Build errors:`); for (const err of result.errors) { @@ -64,17 +64,17 @@ export default function esbuildCTXArtifactTracker({ } for ( - let i = global.HMR_CONTROLLERS.length - 1; + let i = global.BUNEXT_HMR_CONTROLLERS.length - 1; i >= 0; i-- ) { - const controller = global.HMR_CONTROLLERS[i]; + const controller = global.BUNEXT_HMR_CONTROLLERS[i]; try { controller?.controller?.enqueue( `event: update\ndata: ${JSON.stringify({ reload: true })}\n\n`, ); } catch { - global.HMR_CONTROLLERS.splice(i, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(i, 1); } } @@ -89,10 +89,15 @@ export default function esbuildCTXArtifactTracker({ if (artifacts?.[0] && artifacts.length > 0) { for (let i = 0; i < artifacts.length; i++) { const artifact = artifacts[i]; - if (artifact?.local_path && global.BUNDLER_CTX_MAP) { - global.BUNDLER_CTX_MAP[artifact.local_path] = + if ( + artifact?.local_path && + global.BUNEXT_BUNDLER_CTX_MAP + ) { + global.BUNEXT_BUNDLER_CTX_MAP[artifact.local_path] = _.merge( - global.BUNDLER_CTX_MAP[artifact.local_path], + global.BUNEXT_BUNDLER_CTX_MAP[ + artifact.local_path + ], artifact, ); } @@ -102,8 +107,8 @@ export default function esbuildCTXArtifactTracker({ const elapsed = (performance.now() - build_start).toFixed(0); log.success(`[Built] in ${elapsed}ms`); - global.MAIN_CTX_BUILD_STARTS = 0; - global.BUNDLER_CTX_DISPOSED = false; + global.BUNEXT_MAIN_CTX_BUILD_STARTS = 0; + global.BUNEXT_BUNDLER_CTX_DISPOSED = false; const does_error_file_exist = existsSync( BUNX_BUNDLER_ERROR_EXIT_FILE, @@ -141,8 +146,8 @@ export default function esbuildCTXArtifactTracker({ } } - global.RECOMPILING = false; - global.IS_SERVER_COMPONENT = false; + global.BUNEXT_RECOMPILING = false; + global.BUNEXT_IS_SERVER_COMPONENT = false; }); }, }; diff --git a/src/functions/bundler/plugins/ssr-ctx-artifact-tracker.ts b/src/functions/bundler/plugins/ssr-ctx-artifact-tracker.ts index 7252406..afd3865 100644 --- a/src/functions/bundler/plugins/ssr-ctx-artifact-tracker.ts +++ b/src/functions/bundler/plugins/ssr-ctx-artifact-tracker.ts @@ -32,19 +32,19 @@ export default function ssrCTXArtifactTracker({ build_starts++; build_start = performance.now(); if (build_starts == MAX_BUILD_STARTS) { - global.SSR_BUNDLER_CTX_DISPOSED = true; - await global.SSR_BUNDLER_CTX?.dispose(); - global.SSR_BUNDLER_CTX = undefined; + global.BUNEXT_SSR_BUNDLER_CTX_DISPOSED = true; + await global.BUNEXT_SSR_BUNDLER_CTX?.dispose(); + global.BUNEXT_SSR_BUNDLER_CTX = undefined; } }); build.onEnd(async (result) => { if (result.errors.length > 0) { - global.SSR_BUNDLER_CTX_DISPOSED = true; + global.BUNEXT_SSR_BUNDLER_CTX_DISPOSED = true; try { - await global.SSR_BUNDLER_CTX?.dispose(); + await global.BUNEXT_SSR_BUNDLER_CTX?.dispose(); } catch {} - global.SSR_BUNDLER_CTX = undefined; + global.BUNEXT_SSR_BUNDLER_CTX = undefined; build_starts = 0; for (const err of result.errors) { console.error( @@ -65,10 +65,11 @@ export default function ssrCTXArtifactTracker({ const artifact = artifacts[i]; if ( artifact?.local_path && - global.SSR_BUNDLER_CTX_MAP + global.BUNEXT_SSR_BUNDLER_CTX_MAP ) { - global.SSR_BUNDLER_CTX_MAP[artifact.local_path] = - artifact; + global.BUNEXT_SSR_BUNDLER_CTX_MAP[ + artifact.local_path + ] = artifact; } } @@ -83,11 +84,15 @@ export default function ssrCTXArtifactTracker({ try { writeFileSync( path.join(BUNX_TMP_DIR, "ctx-map.json"), - JSON.stringify(global.SSR_BUNDLER_CTX_MAP, null, 4), + JSON.stringify( + global.BUNEXT_SSR_BUNDLER_CTX_MAP, + null, + 4, + ), ); } catch (error) {} - global.SSR_BUNDLER_CTX_DISPOSED = false; + global.BUNEXT_SSR_BUNDLER_CTX_DISPOSED = false; }); }, }; diff --git a/src/functions/bundler/react-modules-bundler.ts b/src/functions/bundler/react-modules-bundler.ts index e1c5a89..90c2e97 100644 --- a/src/functions/bundler/react-modules-bundler.ts +++ b/src/functions/bundler/react-modules-bundler.ts @@ -77,7 +77,7 @@ export default async function reactModulesBundler() { const PUBLIC_ROOT = BUNEXT_VENDOR_DIR.replace(BUNX_CWD_DIR, "/.bunext"); - global.REACT_IMPORTS_MAP = { + global.BUNEXT_REACT_IMPORTS_MAP = { imports: { react: `${PUBLIC_ROOT}/react.js`, "react-dom": `${PUBLIC_ROOT}/react-dom.js`, diff --git a/src/functions/bundler/record-artifacts.ts b/src/functions/bundler/record-artifacts.ts index 6c802d4..517ff9c 100644 --- a/src/functions/bundler/record-artifacts.ts +++ b/src/functions/bundler/record-artifacts.ts @@ -21,8 +21,11 @@ export default async function recordArtifacts({ } } - if (global.BUNDLER_CTX_MAP) { - global.BUNDLER_CTX_MAP = _.merge(global.BUNDLER_CTX_MAP, artifacts_map); + if (global.BUNEXT_BUNDLER_CTX_MAP) { + global.BUNEXT_BUNDLER_CTX_MAP = _.merge( + global.BUNEXT_BUNDLER_CTX_MAP, + artifacts_map, + ); } // await Bun.write( diff --git a/src/functions/bunext-init.ts b/src/functions/bunext-init.ts index bcac588..be37f73 100644 --- a/src/functions/bunext-init.ts +++ b/src/functions/bunext-init.ts @@ -22,37 +22,37 @@ import type { FSWatcher } from "fs"; * # Declare Global Variables */ declare global { - var CONFIG: BunextConfig; - var SERVER: Server | undefined; - var RECOMPILING: boolean; - var BUILDING_SSR: boolean; - var IS_SERVER_COMPONENT: boolean; - var WATCHER_TIMEOUT: any; - var ROUTER: FileSystemRouter; - var HMR_CONTROLLERS: GlobalHMRControllerObject[]; - var LAST_BUILD_TIME: number; - var BUNDLER_CTX_MAP: { [k: string]: BundlerCTXMap }; - var SSR_BUNDLER_CTX_MAP: { [k: string]: BundlerCTXMap }; - // var API_ROUTES_BUNDLER_CTX_MAP: { [k: string]: BundlerCTXMap }; - var BUNDLER_REBUILDS: 0; - var PAGES_SRC_WATCHER: FSWatcher | undefined; - var CURRENT_VERSION: string | undefined; - var PAGE_FILES: PageFiles[]; - var ROOT_FILE_UPDATED: boolean; - var SKIPPED_BROWSER_MODULES: Set; - var BUNDLER_CTX: BuildContext | undefined; - var SSR_BUNDLER_CTX: BuildContext | undefined; - // var API_ROUTES_BUNDLER_CTX: BuildContext | undefined; - var DIR_NAMES: DirNames; - var REACT_IMPORTS_MAP: { imports: Record }; - var REACT_DOM_SERVER: any; - var REACT_DOM_MODULE_CACHE: Map; - var BUNDLER_CTX_DISPOSED: boolean | undefined; - var SSR_BUNDLER_CTX_DISPOSED: boolean | undefined; - var REBUILD_RETRIES: number; - var IS_404_PAGE: boolean; - var CONSTANTS: ReturnType; - var MAIN_CTX_BUILD_STARTS: number; + var BUNEXT_CONFIG: BunextConfig; + var BUNEXT_SERVER: Server | undefined; + var BUNEXT_RECOMPILING: boolean; + var BUNEXT_BUILDING_SSR: boolean; + var BUNEXT_IS_SERVER_COMPONENT: boolean; + var BUNEXT_WATCHER_TIMEOUT: any; + var BUNEXT_ROUTER: FileSystemRouter; + var BUNEXT_HMR_CONTROLLERS: GlobalHMRControllerObject[]; + var BUNEXT_LAST_BUILD_TIME: number; + var BUNEXT_BUNDLER_CTX_MAP: { [k: string]: BundlerCTXMap }; + var BUNEXT_SSR_BUNDLER_CTX_MAP: { [k: string]: BundlerCTXMap }; + // var BUNEXT_API_ROUTES_BUNDLER_CTX_MAP: { [k: string]: BundlerCTXMap }; + var BUNEXT_BUNDLER_REBUILDS: 0; + var BUNEXT_PAGES_SRC_WATCHER: FSWatcher | undefined; + var BUNEXT_CURRENT_VERSION: string | undefined; + var BUNEXT_PAGE_FILES: PageFiles[]; + var BUNEXT_ROOT_FILE_UPDATED: boolean; + var BUNEXT_SKIPPED_BROWSER_MODULES: Set; + var BUNEXT_BUNDLER_CTX: BuildContext | undefined; + var BUNEXT_SSR_BUNDLER_CTX: BuildContext | undefined; + // var BUNEXT_API_ROUTES_BUNDLER_CTX: BuildContext | undefined; + var BUNEXT_DIR_NAMES: DirNames; + var BUNEXT_REACT_IMPORTS_MAP: { imports: Record }; + var BUNEXT_REACT_DOM_SERVER: any; + var BUNEXT_REACT_DOM_MODULE_CACHE: Map; + var BUNEXT_BUNDLER_CTX_DISPOSED: boolean | undefined; + var BUNEXT_SSR_BUNDLER_CTX_DISPOSED: boolean | undefined; + var BUNEXT_REBUILD_RETRIES: number; + var BUNEXT_IS_404_PAGE: boolean; + var BUNEXT_CONSTANTS: ReturnType; + var BUNEXT_MAIN_CTX_BUILD_STARTS: number; } const dirNames = grabDirNames(); @@ -63,23 +63,23 @@ type Params = { }; export default async function bunextInit(params?: Params) { - global.HMR_CONTROLLERS = []; - global.BUNDLER_CTX_MAP = {}; - global.SSR_BUNDLER_CTX_MAP = {}; - // global.API_ROUTES_BUNDLER_CTX_MAP = {}; - global.BUNDLER_REBUILDS = 0; - global.REBUILD_RETRIES = 0; - global.PAGE_FILES = []; - global.SKIPPED_BROWSER_MODULES = new Set(); - global.DIR_NAMES = dirNames; - global.REACT_IMPORTS_MAP = { imports: {} }; - global.REACT_DOM_MODULE_CACHE = new Map(); - global.MAIN_CTX_BUILD_STARTS = 0; + global.BUNEXT_HMR_CONTROLLERS = []; + global.BUNEXT_BUNDLER_CTX_MAP = {}; + global.BUNEXT_SSR_BUNDLER_CTX_MAP = {}; + // global.BUNEXT_API_ROUTES_BUNDLER_CTX_MAP = {}; + global.BUNEXT_BUNDLER_REBUILDS = 0; + global.BUNEXT_REBUILD_RETRIES = 0; + global.BUNEXT_PAGE_FILES = []; + global.BUNEXT_SKIPPED_BROWSER_MODULES = new Set(); + global.BUNEXT_DIR_NAMES = dirNames; + global.BUNEXT_REACT_IMPORTS_MAP = { imports: {} }; + global.BUNEXT_REACT_DOM_MODULE_CACHE = new Map(); + global.BUNEXT_MAIN_CTX_BUILD_STARTS = 0; await init(); log.banner(); - global.CONSTANTS = grabConstants(); + global.BUNEXT_CONSTANTS = grabConstants(); await reactModulesBundler(); @@ -88,7 +88,7 @@ export default async function bunextInit(params?: Params) { dir: PAGES_DIR, }); - global.ROUTER = router; + global.BUNEXT_ROUTER = router; const is_dev = isDevelopment(); diff --git a/src/functions/cache/trim-cache-key.ts b/src/functions/cache/trim-cache-key.ts index 2b6bb09..7cec1f4 100644 --- a/src/functions/cache/trim-cache-key.ts +++ b/src/functions/cache/trim-cache-key.ts @@ -18,7 +18,7 @@ export default async function trimCacheKey({ key, }); - const config = global.CONFIG; + const config = global.BUNEXT_CONFIG; const default_expiry_time_seconds = config.default_cache_expiry || diff --git a/src/functions/init.ts b/src/functions/init.ts index 18808d1..af98cf5 100644 --- a/src/functions/init.ts +++ b/src/functions/init.ts @@ -35,7 +35,7 @@ export default async function () { const current_version = package_json.version; - global.CURRENT_VERSION = current_version; + global.BUNEXT_CURRENT_VERSION = current_version; } catch (error) {} const keys = Object.keys(dirNames) as (keyof ReturnType< @@ -65,7 +65,7 @@ export default async function () { const config: BunextConfig = (await grabConfig()) || {}; - global.CONFIG = { + global.BUNEXT_CONFIG = { ...config, development: is_dev, }; diff --git a/src/functions/server/bunext-req-handler.ts b/src/functions/server/bunext-req-handler.ts index e21672e..5380397 100644 --- a/src/functions/server/bunext-req-handler.ts +++ b/src/functions/server/bunext-req-handler.ts @@ -33,11 +33,12 @@ export default async function bunextRequestHandler({ let response: Response | undefined = undefined; - if (global.CONSTANTS.config?.middleware) { - const middleware_res = await global.CONSTANTS.config.middleware({ - req: initial_req, - url, - }); + if (global.BUNEXT_CONSTANTS.config?.middleware) { + const middleware_res = + await global.BUNEXT_CONSTANTS.config.middleware({ + req: initial_req, + url, + }); if (middleware_res instanceof Response) { return middleware_res; diff --git a/src/functions/server/chokidar-watcher-esbuild-ctx.ts b/src/functions/server/chokidar-watcher-esbuild-ctx.ts index 5131958..3962ed0 100644 --- a/src/functions/server/chokidar-watcher-esbuild-ctx.ts +++ b/src/functions/server/chokidar-watcher-esbuild-ctx.ts @@ -41,11 +41,11 @@ export default async function chokadirWatcherEsbuildCTX() { return; } - if (global.BUNDLER_CTX_DISPOSED) { + if (global.BUNEXT_BUNDLER_CTX_DISPOSED) { await fullRebuild({ msg: `Restarting Bundler ...` }); } - if (global.SSR_BUNDLER_CTX_DISPOSED) { + if (global.BUNEXT_SSR_BUNDLER_CTX_DISPOSED) { await pagesSSRBundler().catch((error) => { log.error(`SSR Bundler Error: ${error}`); }); @@ -53,7 +53,7 @@ export default async function chokadirWatcherEsbuildCTX() { if (filename.match(/\/styles$/) || filename === "styles") { owns_recompile = true; - global.RECOMPILING = true; + global.BUNEXT_RECOMPILING = true; await Bun.sleep(1000); await fullRebuild({ msg: `Detected new \`styles\` directory. Rebuilding ...`, @@ -72,31 +72,31 @@ export default async function chokadirWatcherEsbuildCTX() { if (event === "change") { if (filename.match(target_files_match)) { - if (global.RECOMPILING) return; + if (global.BUNEXT_RECOMPILING) return; owns_recompile = true; - global.RECOMPILING = true; + global.BUNEXT_RECOMPILING = true; if (filename.match(/.*\.server\.tsx?/)) { - global.IS_SERVER_COMPONENT = true; + global.BUNEXT_IS_SERVER_COMPONENT = true; } - if (global.BUNDLER_CTX) { - await global.BUNDLER_CTX.rebuild(); + if (global.BUNEXT_BUNDLER_CTX) { + await global.BUNEXT_BUNDLER_CTX.rebuild(); } if (filename.match(/(404|500)\.tsx?/)) { for ( - let i = global.HMR_CONTROLLERS.length - 1; + let i = global.BUNEXT_HMR_CONTROLLERS.length - 1; i >= 0; i-- ) { - const controller = global.HMR_CONTROLLERS[i]; + const controller = global.BUNEXT_HMR_CONTROLLERS[i]; try { controller?.controller?.enqueue( `event: update\ndata: ${JSON.stringify({ reload: true })}\n\n`, ); } catch { - global.HMR_CONTROLLERS.splice(i, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(i, 1); } } } @@ -119,7 +119,7 @@ export default async function chokadirWatcherEsbuildCTX() { return reloadWatcher(); } - if (global.RECOMPILING) return; + if (global.BUNEXT_RECOMPILING) return; owns_recompile = true; const action = event.startsWith("add") ? "created" : "deleted"; @@ -139,8 +139,8 @@ export default async function chokadirWatcherEsbuildCTX() { log.error(`Watcher rebuild failed: ${error}`); } finally { if (owns_recompile) { - global.RECOMPILING = false; - global.IS_SERVER_COMPONENT = false; + global.BUNEXT_RECOMPILING = false; + global.BUNEXT_IS_SERVER_COMPONENT = false; } } }; @@ -154,8 +154,8 @@ export default async function chokadirWatcherEsbuildCTX() { } function reloadWatcher() { - if (global.PAGES_SRC_WATCHER) { - global.PAGES_SRC_WATCHER.close(); + if (global.BUNEXT_PAGES_SRC_WATCHER) { + global.BUNEXT_PAGES_SRC_WATCHER.close(); chokadirWatcherEsbuildCTX(); } } diff --git a/src/functions/server/full-rebuild.ts b/src/functions/server/full-rebuild.ts index cd318a9..43e5923 100644 --- a/src/functions/server/full-rebuild.ts +++ b/src/functions/server/full-rebuild.ts @@ -7,20 +7,20 @@ export default async function fullRebuild(params?: { msg?: string }) { try { const { msg } = params || {}; - global.RECOMPILING = true; + global.BUNEXT_RECOMPILING = true; if (msg) { log.watch(msg); } - global.ROUTER.reload(); + global.BUNEXT_ROUTER.reload(); try { - await global.BUNDLER_CTX?.dispose(); - global.BUNDLER_CTX = undefined; + await global.BUNEXT_BUNDLER_CTX?.dispose(); + global.BUNEXT_BUNDLER_CTX = undefined; - await global.SSR_BUNDLER_CTX?.dispose(); - global.SSR_BUNDLER_CTX = undefined; + await global.BUNEXT_SSR_BUNDLER_CTX?.dispose(); + global.BUNEXT_SSR_BUNDLER_CTX = undefined; } catch (error) {} await allPagesESBuildContextBundler({ @@ -31,12 +31,12 @@ export default async function fullRebuild(params?: { msg?: string }) { } catch (error: any) { log.error(error); } finally { - global.RECOMPILING = false; - global.IS_SERVER_COMPONENT = false; + global.BUNEXT_RECOMPILING = false; + global.BUNEXT_IS_SERVER_COMPONENT = false; } - if (global.PAGES_SRC_WATCHER) { - global.PAGES_SRC_WATCHER.close(); + if (global.BUNEXT_PAGES_SRC_WATCHER) { + global.BUNEXT_PAGES_SRC_WATCHER.close(); watcherEsbuildCTX(); } } diff --git a/src/functions/server/handle-hmr.ts b/src/functions/server/handle-hmr.ts index e8f4fd1..07b33d8 100644 --- a/src/functions/server/handle-hmr.ts +++ b/src/functions/server/handle-hmr.ts @@ -3,11 +3,11 @@ type Params = { }; function removeController(controller: ReadableStreamDefaultController) { - const idx = global.HMR_CONTROLLERS.findIndex( + const idx = global.BUNEXT_HMR_CONTROLLERS.findIndex( (c) => c.controller == controller, ); if (typeof idx == "number" && idx >= 0) { - global.HMR_CONTROLLERS.splice(idx, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(idx, 1); } } @@ -26,10 +26,10 @@ export default async function ({ req }: Params): Promise { return new Response("Invalid Referer Header", { status: 400 }); } - const match = global.ROUTER.match(referer_url.pathname); + const match = global.BUNEXT_ROUTER.match(referer_url.pathname); const target_map = match?.filePath - ? global.BUNDLER_CTX_MAP?.[match.filePath] + ? global.BUNEXT_BUNDLER_CTX_MAP?.[match.filePath] : undefined; let controller: ReadableStreamDefaultController; @@ -37,7 +37,7 @@ export default async function ({ req }: Params): Promise { const stream = new ReadableStream({ start(c) { controller = c; - global.HMR_CONTROLLERS.push({ + global.BUNEXT_HMR_CONTROLLERS.push({ controller: c, page_url: referer_url.href, target_map, diff --git a/src/functions/server/handle-routes.ts b/src/functions/server/handle-routes.ts index 56a66bd..3d745d1 100644 --- a/src/functions/server/handle-routes.ts +++ b/src/functions/server/handle-routes.ts @@ -52,10 +52,10 @@ export default async function ({ req }: Params): Promise { let module: any; const now = Date.now(); - if (is_dev && global.SSR_BUNDLER_CTX_MAP?.[match.filePath]?.path) { + if (is_dev && global.BUNEXT_SSR_BUNDLER_CTX_MAP?.[match.filePath]?.path) { const target_import = path.join( ROOT_DIR, - global.SSR_BUNDLER_CTX_MAP[match.filePath].path, + global.BUNEXT_SSR_BUNDLER_CTX_MAP[match.filePath].path, ); module = await import(`${target_import}?t=${now}`); @@ -108,9 +108,7 @@ export default async function ({ req }: Params): Promise { ); } - routeParams.body = JSON.parse( - new TextDecoder().decode(body) || "{}", - ); + routeParams.body = JSON.parse(new TextDecoder().decode(body) || "{}"); } const target_module = (module["default"] || diff --git a/src/functions/server/server-post-build-fn.ts b/src/functions/server/server-post-build-fn.ts index b364794..3c657af 100644 --- a/src/functions/server/server-post-build-fn.ts +++ b/src/functions/server/server-post-build-fn.ts @@ -7,15 +7,15 @@ type Params = { }; export default async function serverPostBuildFn(params?: Params) { - if (!global.HMR_CONTROLLERS?.[0] || !global.BUNDLER_CTX_MAP) { + if (!global.BUNEXT_HMR_CONTROLLERS?.[0] || !global.BUNEXT_BUNDLER_CTX_MAP) { return; } const reload_payload = { reload: true }; const reload_enqueue = `event: update\ndata: ${JSON.stringify(reload_payload)}\n\n`; - for (let i = global.HMR_CONTROLLERS.length - 1; i >= 0; i--) { - const controller = global.HMR_CONTROLLERS[i]; + for (let i = global.BUNEXT_HMR_CONTROLLERS.length - 1; i >= 0; i--) { + const controller = global.BUNEXT_HMR_CONTROLLERS[i]; if (!controller) { continue; @@ -29,19 +29,19 @@ export default async function serverPostBuildFn(params?: Params) { try { controller.controller.enqueue(reload_enqueue); } catch { - global.HMR_CONTROLLERS.splice(i, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(i, 1); } continue; } const target_artifact = - global.BUNDLER_CTX_MAP[controller.target_map.local_path]; + global.BUNEXT_BUNDLER_CTX_MAP[controller.target_map.local_path]; if (!target_artifact?.local_path) { try { controller.controller.enqueue(reload_enqueue); } catch { - global.HMR_CONTROLLERS.splice(i, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(i, 1); } continue; } @@ -81,7 +81,7 @@ export default async function serverPostBuildFn(params?: Params) { try { let final_data: { [k: string]: any } = {}; - if (global.ROOT_FILE_UPDATED) { + if (global.BUNEXT_ROOT_FILE_UPDATED) { final_data = reload_payload; } else { final_data = final_artifact; @@ -91,9 +91,9 @@ export default async function serverPostBuildFn(params?: Params) { `event: update\ndata: ${JSON.stringify(final_data)}\n\n`, ); - global.ROOT_FILE_UPDATED = false; + global.BUNEXT_ROOT_FILE_UPDATED = false; } catch { - global.HMR_CONTROLLERS.splice(i, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(i, 1); } } } diff --git a/src/functions/server/start-server.ts b/src/functions/server/start-server.ts index 215d9fb..cbe5607 100644 --- a/src/functions/server/start-server.ts +++ b/src/functions/server/start-server.ts @@ -7,7 +7,7 @@ export default async function startServer() { const server = Bun.serve(serverParams); - global.SERVER = server; + global.BUNEXT_SERVER = server; log.server(`http://${server.hostname}:${server.port}`); diff --git a/src/functions/server/watcher-esbuild-ctx.ts b/src/functions/server/watcher-esbuild-ctx.ts index 2e9ad69..0f49d53 100644 --- a/src/functions/server/watcher-esbuild-ctx.ts +++ b/src/functions/server/watcher-esbuild-ctx.ts @@ -23,14 +23,14 @@ export default async function watcherEsbuildCTX() { if (!filename) return; const full_file_path = path.join(ROOT_DIR, filename); - if (global.CONFIG.exclude_watch_patterns) { + if (global.BUNEXT_CONFIG.exclude_watch_patterns) { for ( let i = 0; - i < global.CONFIG.exclude_watch_patterns.length; + i < global.BUNEXT_CONFIG.exclude_watch_patterns.length; i++ ) { const watch_pattern = - global.CONFIG.exclude_watch_patterns[i]; + global.BUNEXT_CONFIG.exclude_watch_patterns[i]; if (watch_pattern instanceof RegExp) { const is_path_excluded = @@ -60,12 +60,12 @@ export default async function watcherEsbuildCTX() { return; } - if (global.BUNDLER_CTX_DISPOSED) { + if (global.BUNEXT_BUNDLER_CTX_DISPOSED) { await fullRebuild({ msg: `Restarting Bundler ...` }); return; } - if (global.SSR_BUNDLER_CTX_DISPOSED) { + if (global.BUNEXT_SSR_BUNDLER_CTX_DISPOSED) { await pagesSSRBundler().catch((error) => { log.error(`SSR Bundler Error: ${error}`); }); @@ -82,7 +82,7 @@ export default async function watcherEsbuildCTX() { if (full_file_path.match(/\/styles$/)) { owns_recompile = true; - global.RECOMPILING = true; + global.BUNEXT_RECOMPILING = true; await Bun.sleep(1000); await fullRebuild({ msg: `Detected new \`styles\` directory. Rebuilding ...`, @@ -106,31 +106,33 @@ export default async function watcherEsbuildCTX() { if (event !== "rename") { if (filename.match(target_files_match)) { - if (global.RECOMPILING) return; + if (global.BUNEXT_RECOMPILING) return; owns_recompile = true; - global.RECOMPILING = true; + global.BUNEXT_RECOMPILING = true; if (filename.match(/.*\.server\.tsx?/)) { - global.IS_SERVER_COMPONENT = true; + global.BUNEXT_IS_SERVER_COMPONENT = true; } - if (global.BUNDLER_CTX) { - await global.BUNDLER_CTX.rebuild(); + if (global.BUNEXT_BUNDLER_CTX) { + await global.BUNEXT_BUNDLER_CTX.rebuild(); } if (filename.match(/(404|500)\.tsx?/)) { for ( - let i = global.HMR_CONTROLLERS.length - 1; + let i = + global.BUNEXT_HMR_CONTROLLERS.length - 1; i >= 0; i-- ) { - const controller = global.HMR_CONTROLLERS[i]; + const controller = + global.BUNEXT_HMR_CONTROLLERS[i]; try { controller?.controller?.enqueue( `event: update\ndata: ${JSON.stringify({ reload: true })}\n\n`, ); } catch { - global.HMR_CONTROLLERS.splice(i, 1); + global.BUNEXT_HMR_CONTROLLERS.splice(i, 1); } } } @@ -152,7 +154,7 @@ export default async function watcherEsbuildCTX() { return reloadWatcher(); if (filename.match(/ /)) return reloadWatcher(); - if (global.RECOMPILING) return; + if (global.BUNEXT_RECOMPILING) return; owns_recompile = true; const action = does_file_exist ? "created" : "deleted"; @@ -171,19 +173,19 @@ export default async function watcherEsbuildCTX() { log.error(`Watcher rebuild failed: ${error}`); } finally { if (owns_recompile) { - global.RECOMPILING = false; - global.IS_SERVER_COMPONENT = false; + global.BUNEXT_RECOMPILING = false; + global.BUNEXT_IS_SERVER_COMPONENT = false; } } }, ); - global.PAGES_SRC_WATCHER = pages_src_watcher; + global.BUNEXT_PAGES_SRC_WATCHER = pages_src_watcher; } function reloadWatcher() { - if (global.PAGES_SRC_WATCHER) { - global.PAGES_SRC_WATCHER.close(); + if (global.BUNEXT_PAGES_SRC_WATCHER) { + global.BUNEXT_PAGES_SRC_WATCHER.close(); watcherEsbuildCTX(); } } diff --git a/src/functions/server/web-pages/generate-web-html.tsx b/src/functions/server/web-pages/generate-web-html.tsx index 9c49198..58ea741 100644 --- a/src/functions/server/web-pages/generate-web-html.tsx +++ b/src/functions/server/web-pages/generate-web-html.tsx @@ -80,7 +80,7 @@ export default async function genWebHTML({ env: { NODE_ENV: dev ? "development" : "production", ...public_envs, - ...global.CONFIG.public_envs, + ...global.BUNEXT_CONFIG.public_envs, }, }; @@ -122,7 +122,7 @@ export default async function genWebHTML({ type="importmap" dangerouslySetInnerHTML={{ __html: JSON.stringify( - global.REACT_IMPORTS_MAP, + global.BUNEXT_REACT_IMPORTS_MAP, ), }} defer 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 46306d7..e2d97f3 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 @@ -19,10 +19,10 @@ export default async function grabPageBundledReactComponent({ return_tsx_only, }: Params): Promise { try { - if (global.SSR_BUNDLER_CTX_MAP?.[file_path]) { + if (global.BUNEXT_SSR_BUNDLER_CTX_MAP?.[file_path]) { const abs = path.join( ROOT_DIR, - global.SSR_BUNDLER_CTX_MAP[file_path].path, + global.BUNEXT_SSR_BUNDLER_CTX_MAP[file_path].path, ); // Loader.registry.delete(abs); const mod = await import(`${abs}?t=${Date.now()}`); 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 fceceef..9f6d139 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 @@ -35,7 +35,7 @@ export default async function grabPageCombinedServerRes({ ? grabPageServerPath({ file_path: root_file_path }) : {}; const root_server_ctx_map = - global.SSR_BUNDLER_CTX_MAP[root_server_file_path || ""]; + global.BUNEXT_SSR_BUNDLER_CTX_MAP[root_server_file_path || ""]; const final_root_server_path = root_server_ctx_map?.local_path ? path.join(ROOT_DIR, root_server_ctx_map.path) : root_server_file_path; @@ -63,7 +63,8 @@ export default async function grabPageCombinedServerRes({ } const { server_file_path } = grabPageServerPath({ file_path }); - const page_server_ctx = global.SSR_BUNDLER_CTX_MAP[server_file_path || ""]; + const page_server_ctx = + global.BUNEXT_SSR_BUNDLER_CTX_MAP[server_file_path || ""]; const final_page_server_path = page_server_ctx?.local_path ? path.join(ROOT_DIR, page_server_ctx.path) : server_file_path; diff --git a/src/functions/server/web-pages/grab-page-component.tsx b/src/functions/server/web-pages/grab-page-component.tsx index bb79cfb..99cdff0 100644 --- a/src/functions/server/web-pages/grab-page-component.tsx +++ b/src/functions/server/web-pages/grab-page-component.tsx @@ -45,7 +45,7 @@ export default async function grabPageComponent( } = params; const url = req?.url ? new URL(req.url) : undefined; - const router = global.ROUTER; + const router = global.BUNEXT_ROUTER; const is_dev = isDevelopment(); const forwarded_proto = req?.headers.get("x-forwarded-proto"); @@ -89,7 +89,7 @@ export default async function grabPageComponent( throw new Error(errMsg); } - let bundledMap = global.BUNDLER_CTX_MAP[file_path]; + let bundledMap = global.BUNEXT_BUNDLER_CTX_MAP[file_path]; if (!bundledMap?.path) { if (does_error_file_exist) { @@ -106,7 +106,7 @@ export default async function grabPageComponent( msg: `Retrying Bundle map for file \`${file_path}\``, }); await Bun.sleep(1000); - bundledMap = global.BUNDLER_CTX_MAP[file_path]; + bundledMap = global.BUNEXT_BUNDLER_CTX_MAP[file_path]; if (bundledMap?.path) break; } @@ -118,7 +118,7 @@ export default async function grabPageComponent( } if (req && !is_hydration) { - global.BUNDLER_CTX_MAP[file_path].req_url = req.url; + global.BUNEXT_BUNDLER_CTX_MAP[file_path].req_url = req.url; } if (debug) { @@ -168,8 +168,9 @@ export default async function grabPageComponent( error?.status === 404; if (!params.retry && is_dev) { - while (global.REBUILD_RETRIES < 2) { - global.REBUILD_RETRIES = global.REBUILD_RETRIES + 1; + while (global.BUNEXT_REBUILD_RETRIES < 2) { + global.BUNEXT_REBUILD_RETRIES = + global.BUNEXT_REBUILD_RETRIES + 1; await fullRebuild(); await Bun.sleep(200); @@ -182,17 +183,17 @@ export default async function grabPageComponent( component_retried instanceof Response || component_retried.success ) { - global.REBUILD_RETRIES = 0; + global.BUNEXT_REBUILD_RETRIES = 0; await serverPostBuildFn(); return component_retried; } } - global.REBUILD_RETRIES = 0; + global.BUNEXT_REBUILD_RETRIES = 0; } if (is404) { - global.IS_404_PAGE = true; + global.BUNEXT_IS_404_PAGE = true; } else { log.error(`Error Grabbing Page Component: ${error.message}`); log.error(`Page: ${passed_file_path || url?.pathname}`); diff --git a/src/functions/server/web-pages/grab-page-error-component.tsx b/src/functions/server/web-pages/grab-page-error-component.tsx index 97cd334..acfdedf 100644 --- a/src/functions/server/web-pages/grab-page-error-component.tsx +++ b/src/functions/server/web-pages/grab-page-error-component.tsx @@ -21,7 +21,7 @@ export default async function grabPageErrorComponent({ is404, url, }: Params): Promise { - const router = global.ROUTER; + const router = global.BUNEXT_ROUTER; const { BUNX_ROOT_500_PRESET_COMPONENT, BUNX_ROOT_404_PRESET_COMPONENT } = grabDirNames(); @@ -59,7 +59,7 @@ export default async function grabPageErrorComponent({ const file_path = match.filePath; - const bundledMap = global.BUNDLER_CTX_MAP?.[file_path]; + const bundledMap = global.BUNEXT_BUNDLER_CTX_MAP?.[file_path]; const page_component = await grabPageModules({ file_path: file_path, diff --git a/src/functions/server/web-pages/grab-tsx-string-module.tsx b/src/functions/server/web-pages/grab-tsx-string-module.tsx index 89b141c..8409a24 100644 --- a/src/functions/server/web-pages/grab-tsx-string-module.tsx +++ b/src/functions/server/web-pages/grab-tsx-string-module.tsx @@ -148,13 +148,14 @@ async function loadEntry(page_file_path: string): Promise { const mod_file_path = toModPath(page_file_path); const mod_css_path = mod_file_path.replace(/\.js$/, ".css"); - if (global.REACT_DOM_MODULE_CACHE.has(page_file_path)) { - return global.REACT_DOM_MODULE_CACHE.get(page_file_path)?.main as T; + if (global.BUNEXT_REACT_DOM_MODULE_CACHE.has(page_file_path)) { + return global.BUNEXT_REACT_DOM_MODULE_CACHE.get(page_file_path) + ?.main as T; } const mod = await import(`${mod_file_path}?t=${now}`); - global.REACT_DOM_MODULE_CACHE.set(page_file_path, { + global.BUNEXT_REACT_DOM_MODULE_CACHE.set(page_file_path, { main: mod, css: mod_css_path, }); diff --git a/src/utils/check-excluded-patterns.ts b/src/utils/check-excluded-patterns.ts index cfb9c89..037e217 100644 --- a/src/utils/check-excluded-patterns.ts +++ b/src/utils/check-excluded-patterns.ts @@ -3,8 +3,12 @@ type Params = { }; export default function ({ path }: Params): boolean { - for (let i = 0; i < global.CONSTANTS.RouteIgnorePatterns.length; i++) { - const regex = global.CONSTANTS.RouteIgnorePatterns[i]; + for ( + let i = 0; + i < global.BUNEXT_CONSTANTS.RouteIgnorePatterns.length; + i++ + ) { + const regex = global.BUNEXT_CONSTANTS.RouteIgnorePatterns[i]; if (path.match(regex)) return true; } diff --git a/src/utils/grab-app-port.ts b/src/utils/grab-app-port.ts index f69cd31..1839aeb 100644 --- a/src/utils/grab-app-port.ts +++ b/src/utils/grab-app-port.ts @@ -9,8 +9,8 @@ export default function grabAppPort() { return numberfy(process.env.PORT); } - if (global.CONFIG.port) { - return global.CONFIG.port; + if (global.BUNEXT_CONFIG.port) { + return global.BUNEXT_CONFIG.port; } return numberfy(defaultPort); diff --git a/src/utils/grab-assets-prefix.ts b/src/utils/grab-assets-prefix.ts index 5eb2923..67b4f26 100644 --- a/src/utils/grab-assets-prefix.ts +++ b/src/utils/grab-assets-prefix.ts @@ -1,8 +1,8 @@ import AppNames from "./grab-app-names"; export default function grabAssetsPrefix() { - if (global.CONFIG.assets_prefix) { - return global.CONFIG.assets_prefix; + if (global.BUNEXT_CONFIG.assets_prefix) { + return global.BUNEXT_CONFIG.assets_prefix; } const { defaultAssetPrefix } = AppNames; diff --git a/src/utils/grab-constants.ts b/src/utils/grab-constants.ts index c0d9051..c180d9b 100644 --- a/src/utils/grab-constants.ts +++ b/src/utils/grab-constants.ts @@ -1,5 +1,5 @@ export default function grabConstants() { - const config = global.CONFIG; + const config = global.BUNEXT_CONFIG; const MB_IN_BYTES = 1024 * 1024; const ClientWindowPagePropsName = "__PAGE_PROPS__"; diff --git a/src/utils/grab-dir-names.ts b/src/utils/grab-dir-names.ts index 7b267fe..316061f 100644 --- a/src/utils/grab-dir-names.ts +++ b/src/utils/grab-dir-names.ts @@ -31,7 +31,7 @@ export type DirNames = { }; export default function grabDirNames(): DirNames { - if (global.DIR_NAMES) return global.DIR_NAMES; + if (global.BUNEXT_DIR_NAMES) return global.BUNEXT_DIR_NAMES; const ROOT_DIR = process.cwd(); const SRC_DIR = path.join(ROOT_DIR, "src"); diff --git a/src/utils/grab-origin.ts b/src/utils/grab-origin.ts index 5626f4a..4bfa946 100644 --- a/src/utils/grab-origin.ts +++ b/src/utils/grab-origin.ts @@ -1,8 +1,8 @@ import grabAppPort from "./grab-app-port"; export default function grabOrigin() { - if (global.CONFIG.origin) { - return global.CONFIG.origin; + if (global.BUNEXT_CONFIG.origin) { + return global.BUNEXT_CONFIG.origin; } const port = grabAppPort(); diff --git a/src/utils/grab-route-params.ts b/src/utils/grab-route-params.ts index e626c5b..e3e6a89 100644 --- a/src/utils/grab-route-params.ts +++ b/src/utils/grab-route-params.ts @@ -28,7 +28,7 @@ export default async function grabRouteParams({ url, query: _.merge(query, passed_query), body, - server: global.SERVER, + server: global.BUNEXT_SERVER, }; return routeParams; diff --git a/src/utils/grab-router.ts b/src/utils/grab-router.ts index 8a36a04..ebf46ab 100644 --- a/src/utils/grab-router.ts +++ b/src/utils/grab-router.ts @@ -1,7 +1,7 @@ export default function grabRouter() { // if (process.env.NODE_ENV !== "production") { - // global.ROUTER.reload(); + // global.BUNEXT_ROUTER.reload(); // } - return global.ROUTER; + return global.BUNEXT_ROUTER; } diff --git a/src/utils/log.ts b/src/utils/log.ts index 8f677ff..095840e 100644 --- a/src/utils/log.ts +++ b/src/utils/log.ts @@ -31,6 +31,6 @@ export const log = { ), banner: () => console.log( - `\n ${chalk.cyan.bold(AppNames.name)} ${chalk.gray(`v${global.CURRENT_VERSION || AppNames["version"]}`)}\n`, + `\n ${chalk.cyan.bold(AppNames.name)} ${chalk.gray(`v${global.BUNEXT_CURRENT_VERSION || AppNames["version"]}`)}\n`, ), }; diff --git a/src/utils/refresh-router.ts b/src/utils/refresh-router.ts index b1d2c2a..1ec5e33 100644 --- a/src/utils/refresh-router.ts +++ b/src/utils/refresh-router.ts @@ -8,5 +8,5 @@ export default function refreshRouter() { dir: PAGES_DIR, }); - global.ROUTER = router; + global.BUNEXT_ROUTER = router; }