diff --git a/dist/functions/bundler/plugins/esbuild-ctx-artifact-tracker.js b/dist/functions/bundler/plugins/esbuild-ctx-artifact-tracker.js index 195bb7a..426538b 100644 --- a/dist/functions/bundler/plugins/esbuild-ctx-artifact-tracker.js +++ b/dist/functions/bundler/plugins/esbuild-ctx-artifact-tracker.js @@ -6,7 +6,7 @@ import _ from "lodash"; import pagesSSRBundler from "../pages-ssr-bundler"; let build_start = 0; let build_starts = 0; -const MAX_BUILD_STARTS = 2; +const MAX_BUILD_STARTS = 5; export default function esbuildCTXArtifactTracker({ entryToPage, post_build_fn, }) { const artifactTracker = { name: "artifact-tracker", diff --git a/dist/functions/bundler/plugins/ssr-ctx-artifact-tracker.js b/dist/functions/bundler/plugins/ssr-ctx-artifact-tracker.js index 612e49f..35d6dfe 100644 --- a/dist/functions/bundler/plugins/ssr-ctx-artifact-tracker.js +++ b/dist/functions/bundler/plugins/ssr-ctx-artifact-tracker.js @@ -1,7 +1,5 @@ import {} from "esbuild"; import grabArtifactsFromBundledResults from "../grab-artifacts-from-bundled-result"; -import buildOnstartErrorHandler from "../build-on-start-error-handler"; -import { log } from "../../../utils/log"; let build_start = 0; let build_starts = 0; const MAX_BUILD_STARTS = 2; @@ -13,7 +11,9 @@ export default function ssrCTXArtifactTracker({ entryToPage, post_build_fn, }) { build_starts++; build_start = performance.now(); if (build_starts == MAX_BUILD_STARTS) { - await buildOnstartErrorHandler(); + global.SSR_BUNDLER_CTX_DISPOSED = true; + await global.SSR_BUNDLER_CTX?.dispose(); + global.SSR_BUNDLER_CTX = undefined; } }); build.onEnd((result) => { @@ -41,6 +41,7 @@ export default function ssrCTXArtifactTracker({ entryToPage, post_build_fn, }) { // ); // log.success(`SSR [Built] in ${elapsed}ms`); } + global.SSR_BUNDLER_CTX_DISPOSED = false; }); }, }; diff --git a/dist/functions/bunext-init.d.ts b/dist/functions/bunext-init.d.ts index dc2f987..6df4520 100644 --- a/dist/functions/bunext-init.d.ts +++ b/dist/functions/bunext-init.d.ts @@ -41,6 +41,7 @@ declare global { css: string; }>; 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; diff --git a/dist/functions/server/watcher-esbuild-ctx.js b/dist/functions/server/watcher-esbuild-ctx.js index 1255cbc..8501165 100644 --- a/dist/functions/server/watcher-esbuild-ctx.js +++ b/dist/functions/server/watcher-esbuild-ctx.js @@ -4,6 +4,7 @@ import grabDirNames from "../../utils/grab-dir-names"; import fullRebuild from "./full-rebuild"; import { AppData } from "../../data/app-data"; import checkExcludedPatterns from "../../utils/check-excluded-patterns"; +import pagesSSRBundler from "../bundler/pages-ssr-bundler"; const { ROOT_DIR } = grabDirNames(); export default async function watcherEsbuildCTX() { const pages_src_watcher = watch(ROOT_DIR, { @@ -19,6 +20,9 @@ export default async function watcherEsbuildCTX() { await fullRebuild({ msg: `Restarting Bundler ...` }); global.BUNDLER_CTX_DISPOSED = false; } + if (global.SSR_BUNDLER_CTX_DISPOSED) { + pagesSSRBundler(); + } if (filename.endsWith(AppData["BunextTmpFileExt"])) { return; } diff --git a/package.json b/package.json index 337cb9f..144e6c0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/bunext", - "version": "1.0.78", + "version": "1.0.79", "main": "dist/index.js", "module": "index.ts", "dependencies": { diff --git a/src/functions/bundler/plugins/esbuild-ctx-artifact-tracker.ts b/src/functions/bundler/plugins/esbuild-ctx-artifact-tracker.ts index f39a1ff..6f46ee8 100644 --- a/src/functions/bundler/plugins/esbuild-ctx-artifact-tracker.ts +++ b/src/functions/bundler/plugins/esbuild-ctx-artifact-tracker.ts @@ -8,7 +8,7 @@ import pagesSSRBundler from "../pages-ssr-bundler"; let build_start = 0; let build_starts = 0; -const MAX_BUILD_STARTS = 2; +const MAX_BUILD_STARTS = 5; type Params = { entryToPage: Map< diff --git a/src/functions/bundler/plugins/ssr-ctx-artifact-tracker.ts b/src/functions/bundler/plugins/ssr-ctx-artifact-tracker.ts index 591967e..a108abe 100644 --- a/src/functions/bundler/plugins/ssr-ctx-artifact-tracker.ts +++ b/src/functions/bundler/plugins/ssr-ctx-artifact-tracker.ts @@ -1,8 +1,6 @@ import { type Plugin } from "esbuild"; import type { PageFiles } from "../../../types"; import grabArtifactsFromBundledResults from "../grab-artifacts-from-bundled-result"; -import buildOnstartErrorHandler from "../build-on-start-error-handler"; -import { log } from "../../../utils/log"; let build_start = 0; let build_starts = 0; @@ -29,7 +27,9 @@ export default function ssrCTXArtifactTracker({ build_starts++; build_start = performance.now(); if (build_starts == MAX_BUILD_STARTS) { - await buildOnstartErrorHandler(); + global.SSR_BUNDLER_CTX_DISPOSED = true; + await global.SSR_BUNDLER_CTX?.dispose(); + global.SSR_BUNDLER_CTX = undefined; } }); @@ -64,6 +64,8 @@ export default function ssrCTXArtifactTracker({ // ); // log.success(`SSR [Built] in ${elapsed}ms`); } + + global.SSR_BUNDLER_CTX_DISPOSED = false; }); }, }; diff --git a/src/functions/bunext-init.ts b/src/functions/bunext-init.ts index bbc846f..3eeaa85 100644 --- a/src/functions/bunext-init.ts +++ b/src/functions/bunext-init.ts @@ -48,6 +48,7 @@ declare global { 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; diff --git a/src/functions/server/watcher-esbuild-ctx.ts b/src/functions/server/watcher-esbuild-ctx.ts index 627b4e1..d445342 100644 --- a/src/functions/server/watcher-esbuild-ctx.ts +++ b/src/functions/server/watcher-esbuild-ctx.ts @@ -4,6 +4,7 @@ import grabDirNames from "../../utils/grab-dir-names"; import fullRebuild from "./full-rebuild"; import { AppData } from "../../data/app-data"; import checkExcludedPatterns from "../../utils/check-excluded-patterns"; +import pagesSSRBundler from "../bundler/pages-ssr-bundler"; const { ROOT_DIR } = grabDirNames(); @@ -26,6 +27,10 @@ export default async function watcherEsbuildCTX() { global.BUNDLER_CTX_DISPOSED = false; } + if (global.SSR_BUNDLER_CTX_DISPOSED) { + pagesSSRBundler(); + } + if (filename.endsWith(AppData["BunextTmpFileExt"])) { return; }