From 6799f18beebee36513293152f21a47816abc3843 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 13 Jun 2024 23:56:53 +0200 Subject: [PATCH 1/4] refactor!: remove app config support --- src/core/build/types.ts | 17 +------------ src/core/config/defaults.ts | 2 -- src/core/config/resolvers/imports.ts | 1 - src/core/config/resolvers/paths.ts | 14 ----------- src/presets/firebase/preset.ts | 5 ++-- .../firebase/runtime/firebase-gen-1.ts | 6 ++--- .../firebase/runtime/firebase-gen-2.ts | 5 ++-- src/rollup/config.ts | 4 --- src/rollup/plugins/app-config.ts | 25 ------------------- src/runtime/index.ts | 2 +- src/runtime/internal/config.ts | 18 ------------- src/types/config.ts | 7 ------ src/types/virtual/app-config.d.ts | 3 --- test/fixture/app.config.ts | 3 --- test/fixture/middleware/config.ts | 3 +-- test/fixture/routes/config.ts | 4 --- 16 files changed, 10 insertions(+), 109 deletions(-) delete mode 100644 src/rollup/plugins/app-config.ts delete mode 100644 src/types/virtual/app-config.d.ts delete mode 100644 test/fixture/app.config.ts diff --git a/src/core/build/types.ts b/src/core/build/types.ts index 95465b6f36..789f57252b 100644 --- a/src/core/build/types.ts +++ b/src/core/build/types.ts @@ -125,23 +125,8 @@ export async function writeTypes(nitro: Nitro) { const config = [ "// Generated by nitro", ` -// App Config -import type { Defu } from 'defu' - -${nitro.options.appConfigFiles - .map((file, index) => - genTypeImport(relative(typesDir, file).replace(/\.\w+$/, ""), [ - { name: "default", as: `appConfig${index}` }, - ]) - ) - .join("\n")} - -type UserAppConfig = Defu<{}, [${nitro.options.appConfigFiles - .map((_, index: number) => `typeof appConfig${index}`) - .join(", ")}]> - declare module "nitro/types" { - interface AppConfig extends UserAppConfig {}`, + `, nitro.options.typescript.generateRuntimeConfigTypes ? generateTypes( await resolveSchema( diff --git a/src/core/config/defaults.ts b/src/core/config/defaults.ts index 710c9179cc..e303d3a508 100644 --- a/src/core/config/defaults.ts +++ b/src/core/config/defaults.ts @@ -10,8 +10,6 @@ export const NitroDefaults: NitroConfig = { timing: isDebug, logLevel: isTest ? 1 : 3, runtimeConfig: { app: {}, nitro: {} }, - appConfig: {}, - appConfigFiles: [], // Dirs scanDirs: [], diff --git a/src/core/config/resolvers/imports.ts b/src/core/config/resolvers/imports.ts index c2cc5159ef..16a4908c14 100644 --- a/src/core/config/resolvers/imports.ts +++ b/src/core/config/resolvers/imports.ts @@ -72,7 +72,6 @@ function getNitroImportsPreset(): Preset[] { "defineRenderHandler", "defineRouteMeta", "getRouteRules", - "useAppConfig", "useEvent", "defineTask", "runTask", diff --git a/src/core/config/resolvers/paths.ts b/src/core/config/resolvers/paths.ts index 9154a1829f..389f8e0369 100644 --- a/src/core/config/resolvers/paths.ts +++ b/src/core/config/resolvers/paths.ts @@ -69,20 +69,6 @@ export async function resolvePathOptions(options: NitroOptions) { resolve(options.srcDir, dir) ); options.scanDirs = [...new Set(options.scanDirs)]; - - // Normalize app.config file paths - options.appConfigFiles ??= []; - options.appConfigFiles = options.appConfigFiles - .map((file) => _tryResolve(resolveNitroPath(file, options))) - .filter(Boolean) as string[]; - - // Detect app.config from scanDirs - for (const dir of options.scanDirs) { - const configFile = _tryResolve("app.config", dir); - if (configFile && !options.appConfigFiles.includes(configFile)) { - options.appConfigFiles.push(configFile); - } - } } function _tryResolve( diff --git a/src/presets/firebase/preset.ts b/src/presets/firebase/preset.ts index efd582027b..5d640f6203 100644 --- a/src/presets/firebase/preset.ts +++ b/src/presets/firebase/preset.ts @@ -30,8 +30,9 @@ const firebase = defineNitroPreset( // Using the gen 1 makes this preset backwards compatible for people already using it nitro.options.firebase = { gen: 1 }; } - nitro.options.appConfig.nitro = nitro.options.appConfig.nitro || {}; - nitro.options.appConfig.nitro.firebase = nitro.options.firebase; + + // Expose firebase config via runtimeConfig + nitro.options.runtimeConfig._firebase = nitro.options.firebase; // Replace __firebaseServerFunctionName__ to actual name in entries (rollupConfig.plugins as Plugin[]).unshift({ diff --git a/src/presets/firebase/runtime/firebase-gen-1.ts b/src/presets/firebase/runtime/firebase-gen-1.ts index fb15c53330..4fcd70a9ed 100644 --- a/src/presets/firebase/runtime/firebase-gen-1.ts +++ b/src/presets/firebase/runtime/firebase-gen-1.ts @@ -1,13 +1,11 @@ import "#nitro-internal-pollyfills"; -import { useNitroApp } from "nitro/runtime"; -import { useAppConfig } from "nitro/runtime"; - +import { useRuntimeConfig, useNitroApp } from "nitro/runtime"; import functions from "firebase-functions"; import { toNodeListener } from "h3"; const nitroApp = useNitroApp(); -const firebaseConfig = useAppConfig().nitro.firebase; +const firebaseConfig = useRuntimeConfig()._firebase; export const __firebaseServerFunctionName__ = functions .region(firebaseConfig.region ?? functions.RESET_VALUE) diff --git a/src/presets/firebase/runtime/firebase-gen-2.ts b/src/presets/firebase/runtime/firebase-gen-2.ts index 74dc3ba48f..63b5ea8a70 100644 --- a/src/presets/firebase/runtime/firebase-gen-2.ts +++ b/src/presets/firebase/runtime/firebase-gen-2.ts @@ -1,13 +1,12 @@ import "#nitro-internal-pollyfills"; -import { useNitroApp } from "nitro/runtime"; -import { useAppConfig } from "nitro/runtime"; +import { useNitroApp, useRuntimeConfig } from "nitro/runtime"; import { onRequest } from "firebase-functions/v2/https"; import { toNodeListener } from "h3"; const nitroApp = useNitroApp(); -const firebaseConfig = useAppConfig().nitro.firebase; +const firebaseConfig = useRuntimeConfig()._firebase; export const __firebaseServerFunctionName__ = onRequest( { diff --git a/src/rollup/config.ts b/src/rollup/config.ts index 4badb0c22d..790916787e 100644 --- a/src/rollup/config.ts +++ b/src/rollup/config.ts @@ -24,7 +24,6 @@ import * as unenv from "unenv"; import type { Preset } from "unenv"; import unimportPlugin from "unimport/unplugin"; import { rollup as unwasm } from "unwasm/plugin"; -import { appConfig } from "./plugins/app-config"; import { database } from "./plugins/database"; import { esbuild } from "./plugins/esbuild"; import { externals } from "./plugins/externals"; @@ -299,9 +298,6 @@ export const getRollupConfig = (nitro: Nitro): RollupConfig => { // Database rollupConfig.plugins.push(database(nitro)); - // App.config - rollupConfig.plugins.push(appConfig(nitro)); - // Handlers rollupConfig.plugins.push(handlers(nitro)); diff --git a/src/rollup/plugins/app-config.ts b/src/rollup/plugins/app-config.ts deleted file mode 100644 index c37b8175c8..0000000000 --- a/src/rollup/plugins/app-config.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { genImport } from "knitwork"; -import type { Nitro } from "nitro/types"; -import { virtual } from "./virtual"; - -export function appConfig(nitro: Nitro) { - return virtual( - { - "#nitro-internal-virtual/app-config": () => ` -import { defuFn } from 'defu'; - -const inlineAppConfig = ${JSON.stringify(nitro.options.appConfig, null, 2)}; - -${nitro.options.appConfigFiles - .map((file, i) => genImport(file, "appConfig" + i) + ";") - .join("\n")} - -export const appConfig = defuFn(${[ - ...nitro.options.appConfigFiles.map((_, i) => "appConfig" + i), - "inlineAppConfig", - ].join(", ")}); - `, - }, - nitro.vfs - ); -} diff --git a/src/runtime/index.ts b/src/runtime/index.ts index 6c3a7ef2b5..a1f6420091 100644 --- a/src/runtime/index.ts +++ b/src/runtime/index.ts @@ -4,7 +4,7 @@ export { useNitroApp } from "./internal/app"; // Config -export { useRuntimeConfig, useAppConfig } from "./internal/config"; +export { useRuntimeConfig } from "./internal/config"; // Storage export { useStorage } from "./internal/storage"; diff --git a/src/runtime/internal/config.ts b/src/runtime/internal/config.ts index 9f43a81b37..51a2f2dd4f 100644 --- a/src/runtime/internal/config.ts +++ b/src/runtime/internal/config.ts @@ -1,7 +1,6 @@ import type { H3Event } from "h3"; import { klona } from "klona"; import type { NitroRuntimeConfig } from "nitro/types"; -import { appConfig as _inlineAppConfig } from "#nitro-internal-virtual/app-config"; import { type EnvOptions, applyEnv } from "./utils.env"; // Static runtime config inlined by nitro build @@ -38,23 +37,6 @@ export function useRuntimeConfig< return runtimeConfig; } -// App config -const _sharedAppConfig = _deepFreeze(klona(_inlineAppConfig)); -export function useAppConfig(event?: H3Event) { - // Backwards compatibility with ambient context - if (!event) { - return _sharedAppConfig; - } - // Reuse cached app config from event context - if (event.context.nitro.appConfig) { - return event.context.nitro.appConfig; - } - // Prepare app config for event context - const appConfig = klona(_inlineAppConfig); - event.context.nitro.appConfig = appConfig; - return appConfig; -} - // --- Utils --- function _deepFreeze(object: Record) { diff --git a/src/types/config.ts b/src/types/config.ts index b730d33d0b..7a9d8dc4ab 100644 --- a/src/types/config.ts +++ b/src/types/config.ts @@ -50,8 +50,6 @@ export interface NitroOptions extends PresetOptions { static: boolean; logLevel: LogLevel; runtimeConfig: NitroRuntimeConfig; - appConfig: AppConfig; - appConfigFiles: string[]; // Dirs workspaceDir: string; @@ -286,11 +284,6 @@ export interface LoadConfigOptions { // Partial types // ------------------------------------------------------------ -// App config -export interface AppConfig { - [key: string]: any; -} - // Public assets export interface PublicAssetDir { baseURL?: string; diff --git a/src/types/virtual/app-config.d.ts b/src/types/virtual/app-config.d.ts deleted file mode 100644 index cdc35895ae..0000000000 --- a/src/types/virtual/app-config.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { AppConfig } from "nitropack"; - -export const appConfig: AppConfig; diff --git a/test/fixture/app.config.ts b/test/fixture/app.config.ts deleted file mode 100644 index 90fa51c34f..0000000000 --- a/test/fixture/app.config.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default { - "app-config": true, -}; diff --git a/test/fixture/middleware/config.ts b/test/fixture/middleware/config.ts index 28158e4dad..f68086ae2b 100644 --- a/test/fixture/middleware/config.ts +++ b/test/fixture/middleware/config.ts @@ -1,6 +1,5 @@ process.env.NITRO_DYNAMIC = "from-env"; export default eventHandler((event) => { - const appConfig = useAppConfig(event); - appConfig.dynamic = "from-middleware"; + // ... }); diff --git a/test/fixture/routes/config.ts b/test/fixture/routes/config.ts index 9097e19f5c..4d7a094050 100644 --- a/test/fixture/routes/config.ts +++ b/test/fixture/routes/config.ts @@ -1,13 +1,9 @@ -const sharedAppConfig = useAppConfig(); const sharedRuntimeConfig = useRuntimeConfig(); export default eventHandler((event) => { - const appConfig = useAppConfig(event); const runtimeConfig = useRuntimeConfig(event); return { - sharedAppConfig, - appConfig, runtimeConfig, sharedRuntimeConfig, }; From 0ca5d40b6b4268cd9f57cae7dd46263c3ce0c16a Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 13 Jun 2024 23:57:47 +0200 Subject: [PATCH 2/4] ci: change tag to 3x --- scripts/release-nightly.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/release-nightly.sh b/scripts/release-nightly.sh index 4d06005906..362b52211b 100755 --- a/scripts/release-nightly.sh +++ b/scripts/release-nightly.sh @@ -31,8 +31,8 @@ fi # Release packages echo "Publishing main package..." -npm publish --access public --tolerate-republish --tag v3 +npm publish --access public --tolerate-republish --tag 3x echo "Publishing mirror package..." cd .mirror -npm publish --access public --tolerate-republish --tag v3 +npm publish --access public --tolerate-republish --tag 3x From 47965490d3c3d1353c09bcd79b4f10be15831012 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 22:00:48 +0000 Subject: [PATCH 3/4] chore: apply automated updates --- src/presets/firebase/runtime/firebase-gen-1.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/presets/firebase/runtime/firebase-gen-1.ts b/src/presets/firebase/runtime/firebase-gen-1.ts index 4fcd70a9ed..7c01de79fb 100644 --- a/src/presets/firebase/runtime/firebase-gen-1.ts +++ b/src/presets/firebase/runtime/firebase-gen-1.ts @@ -1,7 +1,7 @@ import "#nitro-internal-pollyfills"; -import { useRuntimeConfig, useNitroApp } from "nitro/runtime"; import functions from "firebase-functions"; import { toNodeListener } from "h3"; +import { useNitroApp, useRuntimeConfig } from "nitro/runtime"; const nitroApp = useNitroApp(); From c7473ef5261b1888d14cc2005a51f2a10899d0e4 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Fri, 14 Jun 2024 00:24:49 +0200 Subject: [PATCH 4/4] update test --- test/tests.ts | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/test/tests.ts b/test/tests.ts index 8c889a728b..652df49ec2 100644 --- a/test/tests.ts +++ b/test/tests.ts @@ -475,12 +475,6 @@ export function testNitro( url: "/config", }); expect(data).toMatchObject({ - appConfig: { - dynamic: "from-middleware", - "app-config": true, - "nitro-config": true, - "server-config": true, - }, runtimeConfig: { dynamic: "from-env", url: "https://test.com", @@ -488,12 +482,6 @@ export function testNitro( baseURL: "/", }, }, - sharedAppConfig: { - dynamic: "initial", - "app-config": true, - "nitro-config": true, - "server-config": true, - }, sharedRuntimeConfig: { dynamic: "from-env", // url: "https://test.com",