UNPKG

react-query-kit

Version:

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

63 lines (50 loc) • 1.96 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var utils = require('./utils.js'); 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 === utils.ReactQuery.skipToken ? utils.ReactQuery.skipToken : context => fetcherFn(variables, context), queryKey: utils.getKey(defaultOptions.queryKey, variables) }; }; const getKey = variables => utils.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(utils.withMiddleware(useBaseHook, defaultOptions, 'queries'), { fetcher: defaultOptions.fetcher, getKey, getOptions, getFetchOptions }); }; exports.createBaseQuery = createBaseQuery; //# sourceMappingURL=createBaseQuery.js.map