UNPKG

@data-client/endpoint

Version:

Declarative Network Interface Definitions

26 lines (25 loc) 911 B
/** Get the Params type for a given Shape */ export type EndpointParam<E> = E extends (first: infer A, ...rest: any) => any ? A : E extends { key: (first: infer A, ...rest: any) => any; } ? A : never; /** What the function's promise resolves to */ export type ResolveType<E extends (...args: any) => any> = ReturnType<E> extends Promise<infer R> ? R : never; export type PartialArray<A> = A extends [ ] ? [ ] : A extends [ infer F ] ? [ F ] | [ ] : A extends [ infer F, ...infer Rest ] ? [ F ] | [ F, ...PartialArray<Rest> ] : A extends (infer T)[] ? T[] : never; export type PartialParameters<T extends (...args: any[]) => any> = T extends (...args: infer P) => any ? Partial<P> : never; export type EndpointToFunction<E extends (...args: any) => Promise<any>> = (this: E, ...args: Parameters<E>) => ReturnType<E>; //# sourceMappingURL=utility.d.ts.map