UNPKG

gql-typeguards

Version:
23 lines (22 loc) 1.66 kB
export declare type GraphQLResult = { __typename: string; }; export declare type ValueOfTypename<T extends GraphQLResult> = T['__typename']; export declare function isType<Result extends GraphQLResult, Typename extends ValueOfTypename<Result>>(result: Result, typename: Typename): result is Extract<Result, { __typename: Typename; }>; export declare function isEither<Result extends GraphQLResult, Typename extends ValueOfTypename<Result>, PossibleTypes extends Array<Typename>>(result: Result, typenames: PossibleTypes): result is Extract<Result, { __typename: typeof typenames[number]; }>; export declare function isNot<Result extends GraphQLResult, Typename extends ValueOfTypename<Result>, ExcludedTypes extends Array<Typename>>(result: Result, typenames: ExcludedTypes): result is Exclude<Result, { __typename: typeof typenames[number]; }>; export declare function isTypeInTuple<ResultItem extends GraphQLResult, Typename extends ValueOfTypename<ResultItem>>(typename: Typename): (o: ResultItem) => o is Extract<ResultItem, { __typename: Typename; }>; export declare function isEitherTypesInTuple<ResultItem extends GraphQLResult, Typename extends ValueOfTypename<ResultItem>, PossibleTypes extends Array<Typename>>(typenames: PossibleTypes): (o: ResultItem) => o is Extract<ResultItem, { __typename: typeof typenames[number]; }>; export declare function isNotTypesInTuple<ResultItem extends GraphQLResult, Typename extends ValueOfTypename<ResultItem>, ExcludedTypes extends Array<Typename>>(typenames: ExcludedTypes): (o: ResultItem) => o is Exclude<ResultItem, { __typename: typeof typenames[number]; }>;