@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
JavaScript
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
};