16 lines
1.3 KiB
TypeScript
16 lines
1.3 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 = { slug?: string }
|
|
type RouteId = '/exercices/[[slug]]';
|
|
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<import('../../$types.js').LayoutData>;
|
|
|
|
export type PageServerData = null;
|
|
export type PageLoad<OutputData extends OutputDataShape<PageParentData> = OutputDataShape<PageParentData>> = Kit.Load<RouteParams, PageServerData, PageParentData, OutputData, RouteId>;
|
|
export type PageLoadEvent = Parameters<PageLoad>[0];
|
|
export type PageData = Expand<Omit<PageParentData, keyof Kit.AwaitedProperties<Awaited<ReturnType<typeof import('./proxy+page.js').load>>>> & OptionalUnion<EnsureDefined<Kit.AwaitedProperties<Awaited<ReturnType<typeof import('./proxy+page.js').load>>>>>>; |