From 51c36b6dcb7ddb4429e9abf5aac10aadb9992690 Mon Sep 17 00:00:00 2001 From: kricsleo Date: Mon, 1 Dec 2025 22:02:26 +0800 Subject: [PATCH 1/2] chore: minimize changes --- src/config/resolvers/paths.ts | 78 +++++++++++++++++++---------------- src/types/config.ts | 2 + 2 files changed, 44 insertions(+), 36 deletions(-) diff --git a/src/config/resolvers/paths.ts b/src/config/resolvers/paths.ts index c5e0de6063..7bbf334217 100644 --- a/src/config/resolvers/paths.ts +++ b/src/config/resolvers/paths.ts @@ -1,6 +1,6 @@ import { prettyPath, resolveNitroPath } from "../../utils/fs.ts"; import { pkgDir, runtimeDir } from "nitro/meta"; -import type { NitroOptions } from "nitro/types"; +import type { NitroOptions, NitroConfig } from "nitro/types"; import { join, resolve } from "pathe"; import { findWorkspaceDir } from "pkg-types"; import { NitroDefaults } from "../defaults.ts"; @@ -133,47 +133,53 @@ export async function resolvePathOptions(options: NitroOptions) { } } - // Resolve renderer handler - if (options.renderer?.handler) { - options.renderer.handler = resolveModulePath( - resolveNitroPath(options.renderer?.handler, options), - { - from: [options.rootDir, ...options.scanDirs], - extensions: RESOLVE_EXTENSIONS, - } - ); - } + if ((options as NitroConfig).renderer === false) { + // Skip (auto) resolve renderer, + // and reset it to meet "NitroOptions" requirements + options.renderer = undefined; + } else { + // Resolve renderer handler + if (options.renderer?.handler) { + options.renderer.handler = resolveModulePath( + resolveNitroPath(options.renderer?.handler, options), + { + from: [options.rootDir, ...options.scanDirs], + extensions: RESOLVE_EXTENSIONS, + } + ); + } - // Resolve renderer template - if (options.renderer?.template) { - options.renderer.template = resolveModulePath( - resolveNitroPath(options.renderer?.template, options), - { + // Resolve renderer template + if (options.renderer?.template) { + options.renderer.template = resolveModulePath( + resolveNitroPath(options.renderer?.template, options), + { + from: [options.rootDir, ...options.scanDirs], + extensions: [".html"], + } + )!; + } else if (!options.renderer?.handler) { + const defaultIndex = resolveModulePath("./index.html", { from: [options.rootDir, ...options.scanDirs], extensions: [".html"], + try: true, + }); + if (defaultIndex) { + options.renderer ??= {}; + options.renderer.template = defaultIndex; + consola.info( + `Using \`${prettyPath(defaultIndex)}\` as renderer template.` + ); } - )!; - } else if (!options.renderer?.handler) { - const defaultIndex = resolveModulePath("./index.html", { - from: [options.rootDir, ...options.scanDirs], - extensions: [".html"], - try: true, - }); - if (defaultIndex) { + } + + // Default renderer handler if template is set + if (options.renderer?.template && !options.renderer?.handler) { options.renderer ??= {}; - options.renderer.template = defaultIndex; - consola.info( - `Using \`${prettyPath(defaultIndex)}\` as renderer template.` + options.renderer.handler = join( + runtimeDir, + "internal/routes/renderer-template" + (options.dev ? ".dev" : "") ); } } - - // Default renderer handler if template is set - if (options.renderer?.template && !options.renderer?.handler) { - options.renderer ??= {}; - options.renderer.handler = join( - runtimeDir, - "internal/routes/renderer-template" + (options.dev ? ".dev" : "") - ); - } } diff --git a/src/types/config.ts b/src/types/config.ts index 4098e7b7da..95eb6fddf4 100644 --- a/src/types/config.ts +++ b/src/types/config.ts @@ -298,6 +298,7 @@ export interface NitroConfig | "_config" | "_c12" | "serverEntry" + | "renderer" > >, C12InputConfig { @@ -309,6 +310,7 @@ export interface NitroConfig unenv?: UnenvPreset | UnenvPreset[]; serverDir?: boolean | "./" | "./server" | (string & {}); serverEntry?: string | NitroOptions["serverEntry"]; + renderer?: false | NitroOptions["renderer"]; } // ------------------------------------------------------------ From f4f6ff0ed1403f9a5c529381940d5b3bd20581b7 Mon Sep 17 00:00:00 2001 From: kricsleo Date: Mon, 1 Dec 2025 22:03:32 +0800 Subject: [PATCH 2/2] chore: lint --- src/config/resolvers/paths.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config/resolvers/paths.ts b/src/config/resolvers/paths.ts index 7bbf334217..d9128b3312 100644 --- a/src/config/resolvers/paths.ts +++ b/src/config/resolvers/paths.ts @@ -134,7 +134,7 @@ export async function resolvePathOptions(options: NitroOptions) { } if ((options as NitroConfig).renderer === false) { - // Skip (auto) resolve renderer, + // Skip (auto) resolve renderer, // and reset it to meet "NitroOptions" requirements options.renderer = undefined; } else {