aboutsummaryrefslogtreecommitdiff
path: root/packages/bun-framework-next/fallback.development.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/bun-framework-next/fallback.development.tsx')
-rw-r--r--packages/bun-framework-next/fallback.development.tsx102
1 files changed, 0 insertions, 102 deletions
diff --git a/packages/bun-framework-next/fallback.development.tsx b/packages/bun-framework-next/fallback.development.tsx
deleted file mode 100644
index 6e3ff00ff..000000000
--- a/packages/bun-framework-next/fallback.development.tsx
+++ /dev/null
@@ -1,102 +0,0 @@
-import type { FallbackMessageContainer } from "../../src/api/schema";
-import { maybeInjectApp } from "macro:./appInjector";
-
-var globalStyles = [];
-function insertGlobalStyleSheet({ detail: url }) {
- globalStyles.push(
- new Promise((resolve, reject) => {
- const link: HTMLLinkElement = document.createElement("link");
- link.rel = "stylesheet";
- link.href = url;
- link.onload = resolve;
- link.onabort = reject;
- link.onerror = reject;
- document.head.appendChild(link);
- }),
- );
-}
-
-const nCSS = document.createElement("noscript");
-nCSS.setAttribute("data-n-css", "");
-document.head.appendChild(nCSS);
-
-document.addEventListener("onimportcss", insertGlobalStyleSheet);
-
-var once = false;
-function insertNextHeadCount() {
- if (!once) {
- document.head.insertAdjacentHTML(
- "beforeend",
- `<meta name="next-head-count" content="0">`,
- );
- once = true;
- }
-}
-
-maybeInjectApp();
-
-globalThis.__BUN_APP_STYLES = [...globalThis["__BUN"].allImportedStyles].map(
- (style) => {
- const url = new URL(style, location.origin);
- if (url.origin === location.origin && url.href === style) {
- return url.pathname;
- }
-
- return style;
- },
-);
-
-import { _boot, pageLoader } from "./client.development";
-
-function renderFallback({ router }: FallbackMessageContainer) {
- const route = router.routes.values[router.route];
-
- if (!document.getElementById("__next")) {
- const next = document.createElement("div");
- next.id = "__next";
- document.body.prepend(next);
- }
-
- document.removeEventListener("onimportcss", insertGlobalStyleSheet);
- document.addEventListener("onimportcss", pageLoader.onImportCSS);
-
- var cssQueue;
- return import(route)
- .then((Namespace) => {
- nCSS.remove();
- document.head.appendChild(nCSS);
- cssQueue = [...globalStyles, ...pageLoader.cssQueue];
- pageLoader.cssQueue = [];
- insertNextHeadCount();
- return _boot(Namespace, true);
- })
- .then(() => {
- cssQueue = [...cssQueue, ...pageLoader.cssQueue.slice()];
- pageLoader.cssQueue = [];
- return Promise.allSettled(cssQueue);
- })
- .finally(() => {
- document.body.style.visibility = "visible";
- document.removeEventListener("onimportcss", pageLoader.onImportCSS);
- });
-}
-
-export default function render(props: FallbackMessageContainer) {
- // @ts-expect-error bun:error.js is real
- return import("/bun:error.js").then(({ renderFallbackError }) => {
- return renderFallback(props).then(
- () => {
- Promise.all(pageLoader.cssQueue).finally(() => {
- renderFallbackError(props);
- document.body.style.visibility = "visible";
- });
- },
- (err) => {
- console.error(err);
- Promise.all(pageLoader.cssQueue).finally(() => {
- renderFallbackError(props);
- });
- },
- );
- });
-}