react-query-kit
Version:
🕊️ A toolkit for ReactQuery that make ReactQuery hooks more reusable and typesafe
57 lines (50 loc) • 1.75 kB
JavaScript
;
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