one
Version:
One is a new React Framework that makes Vite serve both native and web.
88 lines (87 loc) • 2.77 kB
JavaScript
import { VIRTUAL_SSR_CSS_HREF } from "../constants";
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.js.map