UNPKG

react-query-kit

Version:

🕊️ A toolkit for ReactQuery that make ReactQuery hooks more reusable and typesafe

59 lines (48 loc) • 1.88 kB
import { withMiddleware, getKey, ReactQuery } from './utils.mjs'; const createBaseQuery = (defaultOptions, useRQHook, overrideOptions) => { if (process.env.NODE_ENV !== 'production') { // @ts-ignore if (defaultOptions.useDefaultOptions) { console.error('[Bug] useDefaultOptions is not supported, please use middleware instead.'); } // @ts-ignore if (defaultOptions.queryFn) { console.error('[Bug] queryFn is not supported, please use fetcher instead.'); } } const getQueryOptions = (fetcherFn, variables) => { return { queryFn: variables && variables === ReactQuery.skipToken ? ReactQuery.skipToken : context => fetcherFn(variables, context), queryKey: getKey(defaultOptions.queryKey, variables) }; }; const getKey$1 = variables => getKey(defaultOptions.queryKey, variables); const getOptions = variables => { return { ...defaultOptions, ...getQueryOptions(defaultOptions.fetcher, variables) }; }; const getFetchOptions = variables => { return { ...getQueryOptions(defaultOptions.fetcher, variables), queryKeyHashFn: defaultOptions.queryKeyHashFn, getPreviousPageParam: defaultOptions.getPreviousPageParam, getNextPageParam: defaultOptions.getNextPageParam, initialPageParam: defaultOptions.initialPageParam, staleTime: defaultOptions.staleTime, gcTime: defaultOptions.gcTime }; }; const useBaseHook = (options, queryClient) => { return useRQHook({ ...options, ...getQueryOptions(options.fetcher, options.variables), ...overrideOptions }, queryClient); }; return Object.assign(withMiddleware(useBaseHook, defaultOptions, 'queries'), { fetcher: defaultOptions.fetcher, getKey: getKey$1, getOptions, getFetchOptions }); }; export { createBaseQuery }; //# sourceMappingURL=createBaseQuery.mjs.map