jotai
Version:
👻 Next gen state management that will spook you
20 lines (19 loc) • 1.27 kB
TypeScript
import type { AnyVariables, Client, OperationContext, OperationResult, TypedDocumentNode } from '@urql/core';
import type { Getter, WritableAtom } from 'jotai';
type AtomWithSubscriptionAction = {
type: 'refetch';
};
type OperationResultWithData<Data, Variables extends AnyVariables> = Omit<OperationResult<Data, Variables>, 'data'> & {
data: Data;
};
type SubscriptionArgs<Data, Variables extends AnyVariables> = {
query: TypedDocumentNode<Data, Variables> | string;
variables: Variables;
context?: Partial<OperationContext>;
};
type SubscriptionArgsWithPause<Data, Variables extends AnyVariables> = SubscriptionArgs<Data, Variables> & {
pause: boolean;
};
export declare function atomWithSubscription<Data, Variables extends AnyVariables>(createSubscriptionArgs: (get: Getter) => SubscriptionArgs<Data, Variables>, getClient?: (get: Getter) => Client): WritableAtom<OperationResultWithData<Data, Variables>, AtomWithSubscriptionAction>;
export declare function atomWithSubscription<Data, Variables extends AnyVariables>(createSubscriptionArgs: (get: Getter) => SubscriptionArgsWithPause<Data, Variables>, getClient?: (get: Getter) => Client): WritableAtom<OperationResultWithData<Data, Variables> | null, AtomWithSubscriptionAction>;
export {};