UNPKG

@tanstack/start-server-core

Version:

Modern and scalable routing for React applications

20 lines (19 loc) 777 B
type BaseContext = { nonce?: string; }; export type RequestOptions<TRegister> = TRegister extends { server: { requestContext: infer TRequestContext; }; } ? TRequestContext extends undefined ? { context?: TRequestContext & BaseContext; } : { context: TRequestContext & BaseContext; } : { context?: BaseContext; }; type HasRequired<T> = keyof T extends never ? false : { [K in keyof T]-?: undefined extends T[K] ? never : K; }[keyof T] extends never ? false : true; export type RequestHandler<TRegister> = HasRequired<RequestOptions<TRegister>> extends true ? (request: Request, opts: RequestOptions<TRegister>) => Promise<Response> | Response : (request: Request, opts?: RequestOptions<TRegister>) => Promise<Response> | Response; export {};