From 5cc7b9410c605d507d0435313b535313049bcd7f Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 6 May 2022 13:54:23 +0100 Subject: [PATCH 1/3] fix(schema): add back `PublicRuntimeConfig` interface for augmentation --- packages/nuxt/src/core/templates.ts | 10 +++++++++- packages/schema/src/types/config.ts | 12 ++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts index 2604a7b4169..a8795997899 100644 --- a/packages/nuxt/src/core/templates.ts +++ b/packages/nuxt/src/core/templates.ts @@ -135,7 +135,7 @@ export const schemaTemplate = { ` [${genString(meta.configKey)}]?: typeof ${genDynamicImport(meta.importName, { wrapper: false })}.default extends NuxtModule ? Partial : Record` ), ' }', - generateTypes(resolveSchema(nuxt.options.runtimeConfig), + generateTypes(resolveSchema(Object.fromEntries(Object.entries(nuxt.options.runtimeConfig).filter(([key]) => key !== 'public'))), { interfaceName: 'RuntimeConfig', addExport: false, @@ -143,6 +143,14 @@ export const schemaTemplate = { allowExtraKeys: false, indentation: 2 }), + generateTypes(resolveSchema(nuxt.options.runtimeConfig.public), + { + interfaceName: 'PublicRuntimeConfig', + addExport: false, + addDefaults: false, + allowExtraKeys: false, + indentation: 2 + }), '}' ].join('\n') } diff --git a/packages/schema/src/types/config.ts b/packages/schema/src/types/config.ts index 0446e1aa261..fedaf42d1f7 100644 --- a/packages/schema/src/types/config.ts +++ b/packages/schema/src/types/config.ts @@ -14,17 +14,13 @@ export interface NuxtOptions extends ConfigSchema { _layers: ResolvedConfig[] } -type RuntimeConfigNamespace = Record +type RuntimeConfigNamespace = Record -/** @deprecated use RuntimeConfig interface */ export interface PublicRuntimeConfig extends RuntimeConfigNamespace { } /** @deprecated use RuntimeConfig interface */ -export interface PrivateRuntimeConfig extends PublicRuntimeConfig { } - -type LegacyRuntimeConfig = PublicRuntimeConfig & Partial +export interface PrivateRuntimeConfig extends RuntimeConfigNamespace { } -export interface RuntimeConfig extends LegacyRuntimeConfig, RuntimeConfigNamespace { - app: RuntimeConfigNamespace - public: RuntimeConfigNamespace +export interface RuntimeConfig extends PrivateRuntimeConfig, RuntimeConfigNamespace { + public: PublicRuntimeConfig } From fdfaac2d4a717fbf56a7915a14cb4541495906f7 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 6 May 2022 13:56:03 +0100 Subject: [PATCH 2/3] style: removes tray space --- packages/schema/src/types/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/schema/src/types/config.ts b/packages/schema/src/types/config.ts index fedaf42d1f7..9ea1cb29c31 100644 --- a/packages/schema/src/types/config.ts +++ b/packages/schema/src/types/config.ts @@ -14,7 +14,7 @@ export interface NuxtOptions extends ConfigSchema { _layers: ResolvedConfig[] } -type RuntimeConfigNamespace = Record +type RuntimeConfigNamespace = Record export interface PublicRuntimeConfig extends RuntimeConfigNamespace { } From b59e1e8962e7e2b76f788eb1a582becac8c6f474 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 6 May 2022 14:25:08 +0100 Subject: [PATCH 3/3] chore: add todo comment --- packages/schema/src/types/config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/schema/src/types/config.ts b/packages/schema/src/types/config.ts index 9ea1cb29c31..827c3fbdc6e 100644 --- a/packages/schema/src/types/config.ts +++ b/packages/schema/src/types/config.ts @@ -18,6 +18,7 @@ type RuntimeConfigNamespace = Record export interface PublicRuntimeConfig extends RuntimeConfigNamespace { } +// TODO: remove before release of 3.0.0 /** @deprecated use RuntimeConfig interface */ export interface PrivateRuntimeConfig extends RuntimeConfigNamespace { }