UNPKG

vike

Version:

The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.

16 lines (15 loc) 1.42 kB
export type { PageContextConfig }; export type { ConfigResolved }; import type { VikePackages } from '../VikeNamespace.js'; import type { ConfigBuiltIn, ConfigBuiltInResolved, ImportString } from '../Config.js'; import type { Combine, IsNotEmpty, XOR5 } from './helpers.js'; type PageContextConfig = ConfigResolved & (ConfigVikePackagesNotEmptyXor extends true ? ConfigVikePackagesIntersection : ConfigVikePackagesCombined); type ConfigUnresolved = WithoutImportString<ConfigBuiltIn & Vike.Config>; type ConfigResolvedOnly = ConfigBuiltInResolved & Vike.ConfigResolved; type ConfigResolved = ConfigResolvedOnly & Omit<ConfigUnresolved, keyof ConfigResolvedOnly>; type ConfigVikePackagesIntersection = VikePackages.ConfigVikeReact & VikePackages.ConfigVikeVue & VikePackages.ConfigVikeSolid & VikePackages.ConfigVikeSvelte & VikePackages.ConfigVikeAngular; type ConfigVikePackagesCombined = Combine<VikePackages.ConfigVikeReact, Combine<VikePackages.ConfigVikeVue, Combine<VikePackages.ConfigVikeSolid, Combine<VikePackages.ConfigVikeSvelte, VikePackages.ConfigVikeAngular>>>>; type ConfigVikePackagesNotEmptyXor = XOR5<IsNotEmpty<VikePackages.ConfigVikeReact>, IsNotEmpty<VikePackages.ConfigVikeVue>, IsNotEmpty<VikePackages.ConfigVikeSolid>, IsNotEmpty<VikePackages.ConfigVikeSvelte>, IsNotEmpty<VikePackages.ConfigVikeAngular>>; type WithoutImportString<T> = { [K in keyof T]: Exclude<T[K], ImportString>; };