UNPKG

react-query-kit

Version:

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

57 lines (50 loc) • 1.75 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var TanstackReactQuery = require('@tanstack/react-query'); function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n["default"] = e; return Object.freeze(n); } var TanstackReactQuery__namespace = /*#__PURE__*/_interopNamespace(TanstackReactQuery); const ReactQuery = TanstackReactQuery__namespace; 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]; }; exports.ReactQuery = ReactQuery; exports.getKey = getKey; exports.isV5 = isV5; exports.suspenseOptions = suspenseOptions; exports.withMiddleware = withMiddleware; //# sourceMappingURL=utils.js.map