@shopify/react-graphql
Version:
Tools for creating type-safe and asynchronous GraphQL components for React
37 lines • 2.2 kB
TypeScript
import type { ReactNode } from 'react';
import type { DocumentNode, GraphQLOperation, GraphQLData, GraphQLVariables, GraphQLDeepPartial } from 'graphql-typed';
import type { QueryResult, ErrorPolicy, OperationVariables, ApolloError, ApolloClient, WatchQueryFetchPolicy } from '@apollo/client';
import type { IfEmptyObject, IfAllNullableKeys } from '@shopify/useful-types';
import type { AsyncComponentType, AsyncHookTarget } from '@shopify/react-async';
import type { QueryHookOptions } from './hooks';
export type { GraphQLData, GraphQLVariables, GraphQLDeepPartial, GraphQLOperation, };
export type VariableOptions<Variables> = IfEmptyObject<Variables, {
variables?: never;
}, IfAllNullableKeys<Variables, {
variables?: Variables;
}, {
variables: Variables;
}>>;
export type QueryProps<Data = any, Variables extends OperationVariables = OperationVariables> = {
children: (result: QueryResult<Data, Variables>) => ReactNode;
fetchPolicy?: WatchQueryFetchPolicy;
errorPolicy?: ErrorPolicy;
notifyOnNetworkStatusChange?: boolean;
pollInterval?: number;
query: DocumentNode<Data, Variables>;
ssr?: boolean;
displayName?: string;
skip?: boolean;
client?: ApolloClient<object>;
context?: {
[key: string]: any;
};
partialRefetch?: boolean;
onCompleted?: (data: Data | {}) => void;
onError?: (error: ApolloError) => void;
} & VariableOptions<Variables>;
export interface AsyncDocumentNode<Data, Variables extends OperationVariables, DeepPartial> extends GraphQLOperation<Data, Variables, DeepPartial>, AsyncHookTarget<DocumentNode<Data, Variables, DeepPartial>, {}, VariableOptions<Variables>, VariableOptions<Variables> & Pick<QueryProps<Data, Variables>, 'pollInterval'>> {
}
export interface AsyncQueryComponentType<Data, Variables extends OperationVariables, DeepPartial> extends GraphQLOperation<Data, Variables, DeepPartial>, AsyncComponentType<DocumentNode<Data, Variables, DeepPartial>, QueryHookOptions<Data, Variables> & Pick<QueryProps<Data, Variables>, 'children'>, {}, VariableOptions<Variables>, VariableOptions<Variables> & Pick<QueryProps<Data, Variables>, 'pollInterval'>> {
}
//# sourceMappingURL=types.d.ts.map