app.config.d.ts 1022 B

12345678910111213141516171819202122232425262728293031
  1. import type { CustomAppConfig } from 'nuxt/schema'
  2. import type { Defu } from 'defu'
  3. declare const inlineConfig = {
  4. "nuxt": {}
  5. }
  6. type ResolvedAppConfig = Defu<typeof inlineConfig, []>
  7. type IsAny<T> = 0 extends 1 & T ? true : false
  8. type MergedAppConfig<Resolved extends Record<string, unknown>, Custom extends Record<string, unknown>> = {
  9. [K in keyof (Resolved & Custom)]: K extends keyof Custom
  10. ? unknown extends Custom[K]
  11. ? Resolved[K]
  12. : IsAny<Custom[K]> extends true
  13. ? Resolved[K]
  14. : Custom[K] extends Record<string, any>
  15. ? Resolved[K] extends Record<string, any>
  16. ? MergedAppConfig<Resolved[K], Custom[K]>
  17. : Exclude<Custom[K], undefined>
  18. : Exclude<Custom[K], undefined>
  19. : Resolved[K]
  20. }
  21. declare module 'nuxt/schema' {
  22. interface AppConfig extends MergedAppConfig<ResolvedAppConfig, CustomAppConfig> { }
  23. }
  24. declare module '@nuxt/schema' {
  25. interface AppConfig extends MergedAppConfig<ResolvedAppConfig, CustomAppConfig> { }
  26. }