19 lines
1.1 KiB
TypeScript
19 lines
1.1 KiB
TypeScript
import type * as Kit from '@sveltejs/kit';
|
|
|
|
type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
|
|
type RouteParams = { }
|
|
type RouteId = '/';
|
|
type MaybeWithVoid<T> = {} extends T ? T | void : T;
|
|
export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
|
|
type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
|
|
type EnsureDefined<T> = T extends null | undefined ? {} : T;
|
|
type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
|
|
type PageParentData = EnsureDefined<LayoutData>;
|
|
type LayoutRouteId = RouteId | "/" | "/exercices/[[slug]]" | null
|
|
type LayoutParams = RouteParams & { slug?: string }
|
|
type LayoutParentData = EnsureDefined<{}>;
|
|
|
|
export type PageServerData = null;
|
|
export type PageData = Expand<PageParentData>;
|
|
export type LayoutServerData = null;
|
|
export type LayoutData = Expand<LayoutParentData>; |