@types/react-relay
Version:
TypeScript definitions for react-relay
31 lines (24 loc) • 1.13 kB
TypeScript
import { GraphQLTaggedNode } from "relay-runtime";
import { ArrayKeyType, ArrayKeyTypeData, KeyType, KeyTypeData } from "./helpers";
// NOTE: These declares ensure that the type of the returned data is:
// - non-nullable if the provided ref type is non-nullable
// - nullable if the provided ref type is nullable
// - array of non-nullable if the provided ref type is an array of
// non-nullable refs
// - array of nullable if the provided ref type is an array of nullable refs
export function useFragment<TKey extends KeyType>(
fragmentInput: GraphQLTaggedNode,
fragmentRef: TKey,
): KeyTypeData<TKey>;
export function useFragment<TKey extends KeyType>(
fragmentInput: GraphQLTaggedNode,
fragmentRef: TKey | null | undefined,
): KeyTypeData<TKey> | null | undefined;
export function useFragment<TKey extends ArrayKeyType>(
fragmentInput: GraphQLTaggedNode,
fragmentRef: TKey,
): ArrayKeyTypeData<TKey>;
export function useFragment<TKey extends ArrayKeyType>(
fragmentInput: GraphQLTaggedNode,
fragmentRef: TKey | null | undefined,
): ArrayKeyTypeData<TKey> | null | undefined;