@@ -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