react-query-external-sync
Version:
A tool for syncing React Query state to an external Dev Tools
46 lines (45 loc) • 1.42 kB
TypeScript
import { DefaultError, MutationKey, MutationMeta, MutationScope, MutationState, QueryKey, QueryMeta, QueryObserverOptions, QueryState } from '@tanstack/react-query';
export interface SimpleDehydratedState {
mutations: unknown[];
queries: unknown[];
}
export interface SyncMessage {
type: 'dehydrated-state';
state: DehydratedState;
isOnlineManagerOnline: boolean;
persistentDeviceId: string;
}
export interface DehydratedState {
mutations: DehydratedMutation[];
queries: DehydratedQuery[];
}
export interface DehydratedMutation {
mutationId: number;
mutationKey?: MutationKey;
state: MutationState;
meta?: MutationMeta;
scope?: MutationScope;
gcTime?: number;
}
export interface DehydratedQuery {
queryHash: string;
queryKey: QueryKey;
state: QueryState;
promise?: Promise<unknown>;
meta?: QueryMeta;
observers: ObserverState[];
gcTime?: number;
}
export interface ObserverState<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> {
queryHash: string;
options: QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>;
}
export interface User {
id: string;
deviceName: string;
deviceId: string;
platform?: string;
isConnected?: boolean;
extraDeviceInfo?: string;
envVariables?: Record<string, string>;
}