Skip to content

Commit 002a09d

Browse files
authored
refactor!: remove app config support (#3197)
1 parent f2d6ef9 commit 002a09d

File tree

17 files changed

+11
-124
lines changed

17 files changed

+11
-124
lines changed

docs/1.guide/1.utils.md

-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ Nitro also exposes several built-in utils:
5151
- `defineRenderHandler(handler)`{lang=ts}
5252
- `defineRouteMeta(options)`{lang=ts} (experimental)
5353
- `useRuntimeConfig(event?)`{lang=ts}
54-
- `useAppConfig(event?)`{lang=ts}
5554
- `useStorage(base?)`{lang=ts}
5655
- `useNitroApp()`{lang=ts}
5756
- `defineNitroPlugin(plugin)`{lang=ts}

src/core/build/types.ts

+1-18
Original file line numberDiff line numberDiff line change
@@ -126,24 +126,7 @@ export async function writeTypes(nitro: Nitro) {
126126

127127
const config = [
128128
"// Generated by nitro",
129-
`
130-
// App Config
131-
import type { Defu } from 'defu'
132-
133-
${nitro.options.appConfigFiles
134-
.map((file, index) =>
135-
genTypeImport(relative(typesDir, file).replace(/\.\w+$/, ""), [
136-
{ name: "default", as: `appConfig${index}` },
137-
])
138-
)
139-
.join("\n")}
140-
141-
type UserAppConfig = Defu<{}, [${nitro.options.appConfigFiles
142-
.map((_, index: number) => `typeof appConfig${index}`)
143-
.join(", ")}]>
144-
145-
declare module "nitro/types" {
146-
interface AppConfig extends UserAppConfig {}`,
129+
/* ts */ `declare module "nitro/types" {`,
147130
nitro.options.typescript.generateRuntimeConfigTypes
148131
? generateTypes(
149132
await resolveSchema(

src/core/config/defaults.ts

-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ export const NitroDefaults: NitroConfig = {
99
timing: isDebug,
1010
logLevel: isTest ? 1 : 3,
1111
runtimeConfig: { app: {}, nitro: {} },
12-
appConfig: {},
13-
appConfigFiles: [],
1412

1513
// Dirs
1614
scanDirs: [],

src/core/config/resolvers/imports.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ function getNitroImportsPreset(): Preset[] {
6363
},
6464
{
6565
from: "nitro/runtime/internal/config",
66-
imports: ["useRuntimeConfig", "useAppConfig"],
66+
imports: ["useRuntimeConfig"],
6767
},
6868
{
6969
from: "nitro/runtime/internal/plugin",

src/core/config/resolvers/paths.ts

-14
Original file line numberDiff line numberDiff line change
@@ -70,20 +70,6 @@ export async function resolvePathOptions(options: NitroOptions) {
7070
resolve(options.srcDir, dir)
7171
);
7272
options.scanDirs = [...new Set(options.scanDirs)];
73-
74-
// Normalize app.config file paths
75-
options.appConfigFiles ??= [];
76-
options.appConfigFiles = options.appConfigFiles
77-
.map((file) => _tryResolve(resolveNitroPath(file, options)))
78-
.filter(Boolean) as string[];
79-
80-
// Detect app.config from scanDirs
81-
for (const dir of options.scanDirs) {
82-
const configFile = _tryResolve("app.config", dir);
83-
if (configFile && !options.appConfigFiles.includes(configFile)) {
84-
options.appConfigFiles.push(configFile);
85-
}
86-
}
8773
}
8874

8975
function _tryResolve(

src/presets/firebase/preset.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,10 @@ const firebase = defineNitroPreset(
3939
// Using the gen 1 makes this preset backwards compatible for people already using it
4040
nitro.options.firebase = { gen: 1 };
4141
}
42-
nitro.options.appConfig.nitro = nitro.options.appConfig.nitro || {};
43-
nitro.options.appConfig.nitro.firebase = nitro.options.firebase;
42+
43+
// TODO: add options support back using virtual template
44+
// nitro.options.appConfig.nitro = nitro.options.appConfig.nitro || {};
45+
// nitro.options.appConfig.nitro.firebase = nitro.options.firebase;
4446

4547
const { serverFunctionName } = nitro.options
4648
.firebase as FirebaseFunctionsOptions;

src/presets/firebase/runtime/firebase-gen-1.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import "#nitro-internal-pollyfills";
22
import { useNitroApp } from "nitro/runtime";
3-
import { useAppConfig } from "nitro/runtime";
43

54
import functions from "firebase-functions";
65
import { toNodeListener } from "h3";
76

87
const nitroApp = useNitroApp();
98

10-
const firebaseConfig = useAppConfig().nitro.firebase;
9+
// TODO: add options support back using virtual template
10+
const firebaseConfig = {} as any;
1111

1212
export const __firebaseServerFunctionName__ = functions
1313
.region(firebaseConfig.region ?? functions.RESET_VALUE)

src/presets/firebase/runtime/firebase-gen-2.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import "#nitro-internal-pollyfills";
22
import { useNitroApp } from "nitro/runtime";
3-
import { useAppConfig } from "nitro/runtime";
43

54
import { onRequest } from "firebase-functions/v2/https";
65
import { toNodeListener } from "h3";
76

87
const nitroApp = useNitroApp();
98

10-
const firebaseConfig = useAppConfig().nitro.firebase;
9+
// TODO: add options support back using virtual template
10+
const firebaseConfig = {} as any;
1111

1212
export const __firebaseServerFunctionName__ = onRequest(
1313
{

src/rollup/config.ts

-4
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import { isTest, isWindows } from "std-env";
2424
import { defineEnv } from "unenv";
2525
import unimportPlugin from "unimport/unplugin";
2626
import { rollup as unwasm } from "unwasm/plugin";
27-
import { appConfig } from "./plugins/app-config";
2827
import { database } from "./plugins/database";
2928
import { esbuild } from "./plugins/esbuild";
3029
import { externals } from "./plugins/externals";
@@ -312,9 +311,6 @@ export const getRollupConfig = (nitro: Nitro): RollupConfig => {
312311
// Database
313312
rollupConfig.plugins.push(database(nitro));
314313

315-
// App.config
316-
rollupConfig.plugins.push(appConfig(nitro));
317-
318314
// Handlers
319315
rollupConfig.plugins.push(handlers(nitro));
320316

src/rollup/plugins/app-config.ts

-25
This file was deleted.

src/runtime/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
export { useNitroApp } from "./internal/app";
55

66
// Config
7-
export { useRuntimeConfig, useAppConfig } from "./internal/config";
7+
export { useRuntimeConfig } from "./internal/config";
88

99
// Storage
1010
export { useStorage } from "./internal/storage";

src/runtime/internal/config.ts

-18
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import type { H3Event } from "h3";
22
import { klona } from "klona";
33
import type { NitroRuntimeConfig } from "nitro/types";
4-
import { appConfig as _inlineAppConfig } from "#nitro-internal-virtual/app-config";
54
import { type EnvOptions, applyEnv } from "./utils.env";
65

76
// Static runtime config inlined by nitro build
@@ -38,23 +37,6 @@ export function useRuntimeConfig<
3837
return runtimeConfig;
3938
}
4039

41-
// App config
42-
const _sharedAppConfig = _deepFreeze(klona(_inlineAppConfig));
43-
export function useAppConfig(event?: H3Event) {
44-
// Backwards compatibility with ambient context
45-
if (!event) {
46-
return _sharedAppConfig;
47-
}
48-
// Reuse cached app config from event context
49-
if (event.context.nitro.appConfig) {
50-
return event.context.nitro.appConfig;
51-
}
52-
// Prepare app config for event context
53-
const appConfig = klona(_inlineAppConfig);
54-
event.context.nitro.appConfig = appConfig;
55-
return appConfig;
56-
}
57-
5840
// --- Utils ---
5941

6042
function _deepFreeze(object: Record<string, any>) {

src/types/config.ts

-7
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ export interface NitroOptions extends PresetOptions {
5151
static: boolean;
5252
logLevel: LogLevel;
5353
runtimeConfig: NitroRuntimeConfig;
54-
appConfig: AppConfig;
55-
appConfigFiles: string[];
5654

5755
// Dirs
5856
workspaceDir: string;
@@ -280,11 +278,6 @@ export interface LoadConfigOptions {
280278
// Partial types
281279
// ------------------------------------------------------------
282280

283-
// App config
284-
export interface AppConfig {
285-
[key: string]: any;
286-
}
287-
288281
// Public assets
289282
export interface PublicAssetDir {
290283
baseURL?: string;

test/fixture/middleware/config.ts

-6
This file was deleted.

test/fixture/nitro.config.ts

-5
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,10 @@ export default defineNitroConfig({
6161
"**/_*.txt",
6262
"!**/_unignored.txt",
6363
],
64-
appConfig: {
65-
"nitro-config": true,
66-
dynamic: "initial",
67-
},
6864
runtimeConfig: {
6965
dynamic: "initial",
7066
url: "https://{{APP_DOMAIN}}",
7167
},
72-
appConfigFiles: ["~/server.config.ts"],
7368
publicAssets: [
7469
{
7570
baseURL: "build",

test/fixture/routes/config.ts

-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
1-
const sharedAppConfig = useAppConfig();
21
const sharedRuntimeConfig = useRuntimeConfig();
32

43
export default eventHandler((event) => {
5-
const appConfig = useAppConfig(event);
64
const runtimeConfig = useRuntimeConfig(event);
75

86
return {
9-
sharedAppConfig,
10-
appConfig,
117
runtimeConfig,
128
sharedRuntimeConfig,
139
};

test/tests.ts

-12
Original file line numberDiff line numberDiff line change
@@ -547,25 +547,13 @@ export function testNitro(
547547
url: "/config",
548548
});
549549
expect(data).toMatchObject({
550-
appConfig: {
551-
dynamic: "from-middleware",
552-
"app-config": true,
553-
"nitro-config": true,
554-
"server-config": true,
555-
},
556550
runtimeConfig: {
557551
dynamic: "from-env",
558552
url: "https://test.com",
559553
app: {
560554
baseURL: "/",
561555
},
562556
},
563-
sharedAppConfig: {
564-
dynamic: "initial",
565-
"app-config": true,
566-
"nitro-config": true,
567-
"server-config": true,
568-
},
569557
sharedRuntimeConfig: {
570558
// Cloudflare environment variables are set after first request
571559
dynamic:

0 commit comments

Comments
 (0)