UNPKG

@edgeone/nuxt-pages

Version:

A professional deployment package that seamlessly deploys your Nuxt 3/4 applications to Tencent Cloud EdgeOne platform with optimized performance and intelligent caching.

78 lines (73 loc) 2.32 kB
var require = await (async () => { var { createRequire } = await import("node:module"); return createRequire(import.meta.url); })(); import { getTracer } from "../../esm-chunks/chunk-UOPC2N5A.js"; import "../../esm-chunks/chunk-V2LFVP3C.js"; import { getRunConfig, setFetchBeforeNuxtPatchedIt, setRunConfig } from "../../esm-chunks/chunk-HY3HNABZ.js"; import { getLogger, getRequestContext } from "../../esm-chunks/chunk-KGYBHZC3.js"; import "../../esm-chunks/chunk-HBXUWFGE.js"; import { setCacheControlHeaders, setCacheStatusHeader } from "../../esm-chunks/chunk-5YBUNNZ4.js"; import "../../esm-chunks/chunk-6BT4RYQJ.js"; // src/run/handlers/wait-until.cts var NEXT_REQUEST_CONTEXT_SYMBOL = Symbol.for("@next/request-context"); function setupWaitUntil() { ; globalThis[NEXT_REQUEST_CONTEXT_SYMBOL] = { get() { return { waitUntil: getRequestContext()?.trackBackgroundWork }; } }; } // src/run/handlers/server.ts setFetchBeforeNuxtPatchedIt(globalThis.fetch); var { nextConfig, nuxtConfig } = await getRunConfig(); setRunConfig(nextConfig); setupWaitUntil(); var nuxtImportPromise = import(process.cwd() + "/app/.output/server/index.mjs"); var nuxtHandler; var server_default = async (request, _context, topLevelSpan, requestContext) => { const tracer = getTracer(); if (!nuxtHandler) { await tracer.withActiveSpan("initialize nuxt server", async () => { const nuxtApp = await nuxtImportPromise; nuxtHandler = nuxtApp.default; }); } return await tracer.withActiveSpan("generate response", async (span) => { try { const response = await nuxtHandler(request); if (requestContext.responseCacheKey) { topLevelSpan.setAttribute("responseCacheKey", requestContext.responseCacheKey); } setCacheControlHeaders(response, request, requestContext); setCacheStatusHeader(response.headers, null); return response; } catch (error) { getLogger().withError(error).error("nuxt handler error"); console.error(error); span.setAttribute("http.status_code", 500); return new Response("Internal Server Error", { status: 500, headers: { "Content-Type": "text/plain" } }); } }); }; export { server_default as default };