UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

64 lines (63 loc) 2.54 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { SERVER_CONTEXT_KEY } from "../constants.native.js"; import { safeJsonStringify } from "../utils/htmlEscape.native.js"; import { SERVER_CONTEXT_POST_RENDER_STRING } from "../vite/constants.native.js"; import { useServerContext } from "../vite/one-server-only.native.js"; function ServerContextScript() { if (process.env.VITE_ENVIRONMENT === "client") { return /* @__PURE__ */_jsx("script", { async: true, // @ts-expect-error href: SERVER_CONTEXT_KEY, suppressHydrationWarning: true, dangerouslySetInnerHTML: { __html: `` } }); } if (process.env.VITE_ENVIRONMENT === "ssr") { var _ref; var _restContext_matches, _restContext_matches1; var context = useServerContext(); var cssUrls = (context === null || context === void 0 ? void 0 : context.css) || []; var { cssContents, ...restContext } = context || {}; var hasLeafLoaderData = restContext.loaderData !== void 0; var lastMatchIndex = ((_ref = (_restContext_matches = restContext.matches) === null || _restContext_matches === void 0 ? void 0 : _restContext_matches.length) !== null && _ref !== void 0 ? _ref : 0) - 1; var compactMatches = (_restContext_matches1 = restContext.matches) === null || _restContext_matches1 === void 0 ? void 0 : _restContext_matches1.map(function (m, i) { return { routeId: m.routeId, pathname: m.pathname, params: m.params, ...(hasLeafLoaderData && i === lastMatchIndex ? {} : { loaderData: m.loaderData }) }; }); var clientContext = { ...restContext, matches: compactMatches, cssInlineCount: (cssContents === null || cssContents === void 0 ? void 0 : cssContents.length) || 0, // use placeholder — postRenderData is set during render (after this component) // and replaced in the HTML string after rendering completes postRenderData: SERVER_CONTEXT_POST_RENDER_STRING }; return /* @__PURE__ */_jsx("script", { async: true, // @ts-expect-error href: SERVER_CONTEXT_KEY, suppressHydrationWarning: true, dangerouslySetInnerHTML: { __html: ` globalThis["${SERVER_CONTEXT_KEY}"] = ${safeJsonStringify(clientContext)}; globalThis.__oneLoadedCSS = new Set(${safeJsonStringify(cssUrls)}); ` } }); } return null; } export { ServerContextScript }; //# sourceMappingURL=ServerContextScript.native.js.map