8000 fix(nuxt): allow user augmentation of runtime config · nuxt/nuxt@dd30410 · GitHub
[go: up one dir, main page]

Skip to content

Commit dd30410

Browse files
committed
fix(nuxt): allow user augmentation of runtime config
1 parent 897a225 commit dd30410

File tree

1 file changed

+23
-18
lines changed

1 file changed

+23
-18
lines changed

packages/nuxt/src/core/templates.ts

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,24 @@ export const schemaTemplate: NuxtTemplate = {
262262
]).join('\n')
263263

264264
return [
265-
'import { NuxtModule, ModuleDependencyMeta, RuntimeConfig } from \'@nuxt/schema\'',
265+
`import { RuntimeConfig as UserRuntimeConfig, PublicRuntimeConfig as UserPublicRuntimeConfig } from 'nuxt/schema'`,
266+
'import { NuxtModule, ModuleDependencyMeta } from \'@nuxt/schema\'',
267+
generateTypes(await resolveSchema(privateRuntimeConfig as Record<string, JSValue>),
268+
{
269+
interfaceName: 'SharedRuntimeConfig',
270+
addExport: false,
271+
addDefaults: false,
272+
allowExtraKeys: false,
273+
indentation: 2,
274+
}),
275+
generateTypes(await resolveSchema(nuxt.options.runtimeConfig.public as Record<string, JSValue>),
276+
{
277+
interfaceName: 'SharedPublicRuntimeConfig',
278+
addExport: false,
279+
addDefaults: false,
280+
allowExtraKeys: false,
281+
indentation: 2,
282+
}),
266283
'declare module \'@nuxt/schema\' {',
267284
' interface ModuleDependencies {',
268285
moduleDependencies,
@@ -275,6 +292,8 @@ export const schemaTemplate: NuxtTemplate = {
275292
// So here we only generate tags for `nuxt/schema`
276293
...moduleOptionsInterface({ addJSDocTags: false, unresolved: true }),
277294
' }',
295+
' interface RuntimeConfig extends UserRuntimeConfig {}',
296+
' interface PublicRuntimeConfig extends UserPublicRuntimeConfig {}',
278297
'}',
279298
'declare module \'nuxt/schema\' {',
280299
' interface ModuleDependencies {',
@@ -286,26 +305,12 @@ export const schemaTemplate: NuxtTemplate = {
286305
' interface NuxtConfig {',
287306
...moduleOptionsInterface({ addJSDocTags: true, unresolved: true }),
288307
' }',
289-
generateTypes(await resolveSchema(privateRuntimeConfig as Record<string, JSValue>),
290-
{
291-
interfaceName: 'RuntimeConfig',
292-
addExport: false,
293-
addDefaults: false,
294-
allowExtraKeys: false,
295-
indentation: 2,
296-
}),
297-
generateTypes(await resolveSchema(nuxt.options.runtimeConfig.public as Record<string, JSValue>),
298-
{
299-
interfaceName: 'PublicRuntimeConfig',
300-
addExport: false,
301-
addDefaults: false,
302-
allowExtraKeys: false,
303-
indentation: 2,
304-
}),
308+
' interface RuntimeConfig extends SharedRuntimeConfig {}',
309+
' interface PublicRuntimeConfig extends SharedPublicRuntimeConfig {}',
305310
'}',
306311
`declare module 'vue' {
307312
interface ComponentCustomProperties {
308-
$config: RuntimeConfig
313+
$config: UserRuntimeConfig
309314
}
310315
}`,
311316
].join('\n')

0 commit comments

Comments
 (0)
0