tanstack-query-dev-tools-expo-plugin
Version:
A Expo plugin for Tanstack Query DevTools
42 lines • 1.36 kB
JavaScript
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 {
mutationId: mutation.mutationId,
mutationKey: mutation.options.mutationKey,
state: mutation.state,
...(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 {
state: {
...query.state,
...(query.state.data !== undefined && {
data: query.state.data,
}),
},
queryKey: query.queryKey,
queryHash: query.queryHash,
...(query.meta && { meta: query.meta }),
observers: observerStates,
};
}
//# sourceMappingURL=hydration.js.map