UNPKG

apollo-client-code-first-request

Version:
16 lines (15 loc) 696 B
import { PrimitiveJsToTs } from './primitive-js-to-ts.interface'; import { Type } from './type.interface'; export interface Request<A extends Record<string, any>> { argsRef: Type<A>; args: A; } export declare type ResponseRef = Type<Record<string, any>> | [Type<Record<string, any>>]; export interface Query<N extends string, A extends Record<string, any>, R extends ResponseRef> { name: N; request?: Request<A>; responseRef: R; } export declare type QueryResult<Q extends Query<any, any, any>> = { [K in Q['name']]: Q extends Query<K, any, infer R> ? R extends [Type<infer R2>] ? PrimitiveJsToTs<R2>[] : R extends Type<infer R3> ? PrimitiveJsToTs<R3> : never : never; };