UNPKG

@alphanova/builder

Version:

A fully fledged facade that facilitates object manipulation

53 lines (52 loc) 1.92 kB
import { createSyncStoragePersister } from "@tanstack/query-sync-storage-persister"; import { stateSorter } from "./Redux"; import { QueryClient } from "@tanstack/react-query"; export const queryClientSettings = { defaultOptions: { queries: { staleTime: 10 * 60 * 60 * 1000, cacheTime: 1000 * 60 * 60 * 24, // 24 hours } } }; export const persistSettings = { queryClient: new QueryClient(queryClientSettings), persister: createSyncStoragePersister({ storage: window.localStorage, serialize: data => { return JSON.stringify({ ...data, clientState: { ...data.clientState, queries: data.clientState.queries.map(query => ({ ...query, state: { ...query.state, data: query.state.data.map(data => ({ key: data.id, value: data.extract, })) } })) } }); }, deserialize: data => { const parsedData = JSON.parse(data); return { ...parsedData, clientState: { ...parsedData.clientState, queries: parsedData.clientState.queries.map(query => ({ ...query, state: { ...query.state, data: query.state.data.map(data => { return stateSorter(query.queryKey.at(0) ?? 'ERROR SORTING STATE IN PERSIST QUERY').builder.instantiate(data.key, data.value); }) } })) } }; } }), maxAge: Infinity, };