UNPKG

react-native-devtools-sync

Version:

A tool for syncing React Query state to an external Dev Tools

27 lines 1.35 kB
export function Dehydrate(client) { const mutations = client .getMutationCache() .getAll() .flatMap((mutation) => [dehydrateMutation(mutation)]); const queries = client .getQueryCache() .getAll() .flatMap((query) => [dehydrateQuery(query)]); return { mutations, queries }; } function dehydrateMutation(mutation) { return Object.assign(Object.assign({ mutationId: mutation.mutationId, mutationKey: mutation.options.mutationKey, state: mutation.state, gcTime: mutation.gcTime }, (mutation.options.scope && { scope: mutation.options.scope })), (mutation.meta && { meta: mutation.meta })); } function dehydrateQuery(query) { // Extract observer states const observerStates = query.observers.map((observer) => ({ queryHash: query.queryHash, options: observer.options, // Remove queryFn from observer options to prevent not being able to capture fetch action queryFn: undefined, })); return Object.assign(Object.assign({ state: Object.assign(Object.assign({}, query.state), (query.state.data !== undefined && { data: query.state.data, })), queryKey: query.queryKey, queryHash: query.queryHash, gcTime: query.gcTime }, (query.meta && { meta: query.meta })), { observers: observerStates }); } //# sourceMappingURL=hydration.js.map