react-query-kit
Version:
🕊️ A toolkit for ReactQuery that make ReactQuery hooks more reusable and typesafe
29 lines (26 loc) • 1.04 kB
JavaScript
import * as TanstackReactQuery from '@tanstack/react-query';
const ReactQuery = TanstackReactQuery;
const isV5 = !!ReactQuery.useSuspenseQuery;
const suspenseOptions = {
enabled: true,
suspense: true,
keepPreviousData: undefined,
useErrorBoundary: (_error, query) => query.state.data === undefined
};
const withMiddleware = (hook, defaultOptions, type) => {
return function useMiddleware(options, queryClient) {
const [uses, opts] = [ReactQuery.useQueryClient( // @ts-ignore Compatible with ReactQuery v4
isV5 ? queryClient : options).getDefaultOptions()[type], defaultOptions, options].reduce(([u1, o1], {
use: u2 = [],
...o2
} = {}) => [[...u1, ...u2], { ...o1,
...o2
}], [[]]);
return uses.reduceRight((next, use) => use(next), hook)(opts, queryClient);
};
};
const getKey = (queryKey, variables) => {
return variables === undefined ? queryKey : [...queryKey, variables];
};
export { ReactQuery, getKey, isV5, suspenseOptions, withMiddleware };
//# sourceMappingURL=utils.mjs.map