one
Version:
One is a new React Framework that makes Vite serve both native and web.
77 lines (76 loc) • 2.68 kB
JavaScript
import { VIRTUAL_SSR_CSS_HREF } from "../constants.mjs";
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
function DevHead() {
return process.env.NODE_ENV === "development" ? /* @__PURE__ */jsxs(Fragment, {
children: [/* @__PURE__ */jsx("link", {
rel: "preload",
href: VIRTUAL_SSR_CSS_HREF,
as: "style"
}), /* @__PURE__ */jsx("link", {
rel: "stylesheet",
href: VIRTUAL_SSR_CSS_HREF,
"data-ssr-css": !0
}), /* @__PURE__ */jsx("script", {
type: "module",
dangerouslySetInnerHTML: {
__html: `import { createHotContext } from "/@vite/client";
const hot = createHotContext("/__clear_ssr_css");
hot.on("vite:afterUpdate", () => {
document
.querySelectorAll("[data-ssr-css]")
.forEach(node => node.remove());
});`
}
}), /* @__PURE__ */jsx("script", {
type: "module",
dangerouslySetInnerHTML: {
__html: `import { createHotContext } from "/@vite/client";
const hot = createHotContext("/__one_route_hmr");
hot.on("one:route-update", (data) => {
// Clear only the specific file's cache if provided, otherwise clear all
if (window.__oneRouteCache) {
if (data?.file) {
window.__oneRouteCache.clearFile(data.file);
} else {
window.__oneRouteCache.clear();
}
}
// Dispatch a window event that triggers re-render in route components
window.dispatchEvent(new CustomEvent('one-hmr-update'));
});`
}
}), /* @__PURE__ */jsx("script", {
type: "module",
dangerouslySetInnerHTML: {
__html: `import { createHotContext } from "/@vite/client";
const hot = createHotContext("/__one_loader_hmr");
hot.on("one:loader-data-update", async (data) => {
// Refetch loader data for all affected routes (no full page reload)
if (data?.routePaths && window.__oneRefetchLoader) {
const currentPath = window.location.pathname.replace(/\\/$/, '') || '/';
for (const routePath of data.routePaths) {
// Only refetch if we're on an affected route
if (routePath === currentPath) {
try {
await window.__oneRefetchLoader(routePath);
} catch (err) {
console.error('[one] Error refetching loader:', err);
}
}
}
}
});`
}
}), /* @__PURE__ */jsx("script", {
type: "module",
dangerouslySetInnerHTML: {
__html: `import { injectIntoGlobalHook } from "/@react-refresh";
injectIntoGlobalHook(window);
window.$RefreshReg$ = () => {};
window.$RefreshSig$ = () => (type) => type;`
}
})]
}) : null;
}
export { DevHead };
//# sourceMappingURL=DevHead.mjs.map