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.

149 lines (145 loc) 4.63 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/run/handlers/request-context.cts var request_context_exports = {}; __export(request_context_exports, { createRequestContext: () => createRequestContext, getLogger: () => getLogger, getRequestContext: () => getRequestContext, runWithRequestContext: () => runWithRequestContext }); module.exports = __toCommonJS(request_context_exports); var import_node_async_hooks = require("node:async_hooks"); // node_modules/@netlify/functions/dist/internal.js var import_process = require("process"); var systemLogTag = "__nfSystemLog"; var serializeError = (error) => { const cause = error?.cause instanceof Error ? serializeError(error.cause) : error.cause; return { error: error.message, error_cause: cause, error_stack: error.stack }; }; var LogLevel = /* @__PURE__ */ ((LogLevel2) => { LogLevel2[LogLevel2["Debug"] = 1] = "Debug"; LogLevel2[LogLevel2["Log"] = 2] = "Log"; LogLevel2[LogLevel2["Error"] = 3] = "Error"; return LogLevel2; })(LogLevel || {}); var SystemLogger = class _SystemLogger { fields; logLevel; constructor(fields = {}, logLevel = 2) { this.fields = fields; this.logLevel = logLevel; } doLog(logger, message) { if (import_process.env.NETLIFY_DEV && !import_process.env.NETLIFY_ENABLE_SYSTEM_LOGGING) { return; } logger(systemLogTag, JSON.stringify({ msg: message, fields: this.fields })); } log(message) { if (this.logLevel > 2) { return; } this.doLog(console.log, message); } debug(message) { if (this.logLevel > 1) { return; } this.doLog(console.debug, message); } error(message) { if (this.logLevel > 3) { return; } this.doLog(console.error, message); } withLogLevel(level) { return new _SystemLogger(this.fields, level); } withFields(fields) { return new _SystemLogger( { ...this.fields, ...fields }, this.logLevel ); } withError(error) { const fields = error instanceof Error ? serializeError(error) : { error }; return this.withFields(fields); } }; var systemLogger = new SystemLogger(); // src/run/handlers/request-context.cts var REQUEST_CONTEXT_GLOBAL_KEY = Symbol.for("nf-request-context-async-local-storage"); var REQUEST_COUNTER_KEY = Symbol.for("nf-request-counter"); var extendedGlobalThis = globalThis; function createRequestContext(request, context) { const backgroundWorkPromises = []; const logger = systemLogger.withLogLevel(LogLevel.Log); return { isBackgroundRevalidation: false, captureServerTiming: false, trackBackgroundWork: (promise) => { if (context?.waitUntil) { context.waitUntil(promise); } else { backgroundWorkPromises.push(promise); } }, get backgroundWorkPromise() { return Promise.allSettled(backgroundWorkPromises); }, logger, requestID: "" }; } var requestContextAsyncLocalStorage; function getRequestContextAsyncLocalStorage() { if (requestContextAsyncLocalStorage) { return requestContextAsyncLocalStorage; } if (extendedGlobalThis[REQUEST_CONTEXT_GLOBAL_KEY]) { return extendedGlobalThis[REQUEST_CONTEXT_GLOBAL_KEY]; } const storage = new import_node_async_hooks.AsyncLocalStorage(); requestContextAsyncLocalStorage = storage; extendedGlobalThis[REQUEST_CONTEXT_GLOBAL_KEY] = storage; return storage; } var getRequestContext = () => getRequestContextAsyncLocalStorage().getStore(); function runWithRequestContext(requestContext, fn) { return getRequestContextAsyncLocalStorage().run(requestContext, fn); } function getLogger() { return getRequestContext()?.logger ?? systemLogger; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { createRequestContext, getLogger, getRequestContext, runWithRequestContext });