site-panzai/node_modules/@nuxt/nitro-server/dist/runtime/utils/renderer/app.mjs

49 lines
1.4 KiB
JavaScript
Raw Permalink Normal View History

2026-11-13 13:57:04 +01:00
import { encodePath } from "ufo";
import { useRuntimeConfig } from "nitropack/runtime";
import { createHead } from "@unhead/vue/server";
import { sharedPrerenderCache } from "../cache.mjs";
// @ts-expect-error virtual file
import unheadOptions from "#internal/unhead-options.mjs";
// @ts-expect-error virtual file
import { NUXT_NO_SSR, NUXT_SHARED_DATA } from "#internal/nuxt/nitro-config.mjs";
const PRERENDER_NO_SSR_ROUTES = new Set([
"/index.html",
"/200.html",
"/404.html"
]);
function encodeEventPath(path) {
const queryIndex = path.indexOf("?");
if (queryIndex === -1) {
return encodePath(path);
}
return encodePath(path.slice(0, queryIndex)) + path.slice(queryIndex);
}
export function createSSRContext(event) {
const url = encodeEventPath(event.path);
const ssrContext = {
url,
event,
runtimeConfig: useRuntimeConfig(event),
noSSR: !!NUXT_NO_SSR || event.context.nuxt?.noSSR || (import.meta.prerender ? PRERENDER_NO_SSR_ROUTES.has(url) : false),
head: createHead(unheadOptions),
error: false,
nuxt: undefined,
payload: {},
["~payloadReducers"]: Object.create(null),
modules: new Set()
};
if (import.meta.prerender) {
if (NUXT_SHARED_DATA) {
ssrContext["~sharedPrerenderCache"] = sharedPrerenderCache;
}
ssrContext.payload.prerenderedAt = Date.now();
}
return ssrContext;
}
export function setSSRError(ssrContext, error) {
ssrContext.error = true;
ssrContext.payload = { error };
ssrContext.url = error.url;
}