mirror of
https://codeberg.org/Sevichecc/Seigwai.git
synced 2025-04-30 07:49:30 +08:00
33 lines
1 KiB
TypeScript
33 lines
1 KiB
TypeScript
|
|
import type { CustomAppConfig } from 'nuxt/schema'
|
|
import type { Defu } from 'defu'
|
|
|
|
|
|
declare const inlineConfig = {
|
|
"nuxt": {
|
|
"buildId": "dev"
|
|
}
|
|
}
|
|
type ResolvedAppConfig = Defu<typeof inlineConfig, []>
|
|
type IsAny<T> = 0 extends 1 & T ? true : false
|
|
|
|
type MergedAppConfig<Resolved extends Record<string, unknown>, Custom extends Record<string, unknown>> = {
|
|
[K in keyof (Resolved & Custom)]: K extends keyof Custom
|
|
? unknown extends Custom[K]
|
|
? Resolved[K]
|
|
: IsAny<Custom[K]> extends true
|
|
? Resolved[K]
|
|
: Custom[K] extends Record<string, any>
|
|
? Resolved[K] extends Record<string, any>
|
|
? MergedAppConfig<Resolved[K], Custom[K]>
|
|
: Exclude<Custom[K], undefined>
|
|
: Exclude<Custom[K], undefined>
|
|
: Resolved[K]
|
|
}
|
|
|
|
declare module 'nuxt/schema' {
|
|
interface AppConfig extends MergedAppConfig<ResolvedAppConfig, CustomAppConfig> { }
|
|
}
|
|
declare module '@nuxt/schema' {
|
|
interface AppConfig extends MergedAppConfig<ResolvedAppConfig, CustomAppConfig> { }
|
|
}
|