UNPKG

@types/react-relay

Version:
31 lines (24 loc) 1.02 kB
/* A TS file to help with the construction of the official Relay (flow) types. */ import { FragmentType } from "relay-runtime"; import { EntryPoint } from "./EntryPointTypes"; export type KeyType<TData = unknown> = Readonly<{ " $data"?: TData | undefined; " $fragmentSpreads": FragmentType; }>; export type KeyTypeData<TKey extends KeyType<TData>, TData = unknown> = Required<TKey>[" $data"]; export type ArrayKeyType<TData = unknown> = ReadonlyArray<KeyType<readonly TData[]> | null | undefined>; export type ArrayKeyTypeData<TKey extends ArrayKeyType<TData>, TData = unknown> = KeyTypeData< NonNullable<TKey[number]> >; export type GetEntryPointParamsFromEntryPoint<TEntryPoint> = TEntryPoint extends EntryPoint< infer TEntryPointComponent, infer TEntryPointParams > ? TEntryPointParams : never; export type GetEntryPointComponentFromEntryPoint<TEntryPoint> = TEntryPoint extends EntryPoint< infer TEntryPointComponent, infer TEntryPointParams > ? TEntryPointComponent : never;