rtk-query-react.esm.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460
  1. var __spreadArray = (this && this.__spreadArray) || function (to, from) {
  2. for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
  3. to[j] = from[i];
  4. return to;
  5. };
  6. var __defProp = Object.defineProperty;
  7. var __defProps = Object.defineProperties;
  8. var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
  9. var __getOwnPropSymbols = Object.getOwnPropertySymbols;
  10. var __hasOwnProp = Object.prototype.hasOwnProperty;
  11. var __propIsEnum = Object.prototype.propertyIsEnumerable;
  12. var __defNormalProp = function (obj, key, value) { return key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value }) : obj[key] = value; };
  13. var __spreadValues = function (a, b) {
  14. for (var prop in b || (b = {}))
  15. if (__hasOwnProp.call(b, prop))
  16. __defNormalProp(a, prop, b[prop]);
  17. if (__getOwnPropSymbols)
  18. for (var _i = 0, _c = __getOwnPropSymbols(b); _i < _c.length; _i++) {
  19. var prop = _c[_i];
  20. if (__propIsEnum.call(b, prop))
  21. __defNormalProp(a, prop, b[prop]);
  22. }
  23. return a;
  24. };
  25. var __spreadProps = function (a, b) { return __defProps(a, __getOwnPropDescs(b)); };
  26. // src/query/react/index.ts
  27. import { coreModule, buildCreateApi } from "@reduxjs/toolkit/query";
  28. // src/query/react/buildHooks.ts
  29. import { createSelector } from "@reduxjs/toolkit";
  30. import { useCallback, useDebugValue, useEffect as useEffect3, useLayoutEffect, useMemo as useMemo2, useRef as useRef3, useState } from "react";
  31. import { QueryStatus, skipToken } from "@reduxjs/toolkit/query";
  32. import { shallowEqual as shallowEqual2 } from "react-redux";
  33. // src/query/react/useSerializedStableValue.ts
  34. import { useEffect, useRef, useMemo } from "react";
  35. function useStableQueryArgs(queryArgs, serialize, endpointDefinition, endpointName) {
  36. var incoming = useMemo(function () { return ({
  37. queryArgs: queryArgs,
  38. serialized: typeof queryArgs == "object" ? serialize({ queryArgs: queryArgs, endpointDefinition: endpointDefinition, endpointName: endpointName }) : queryArgs
  39. }); }, [queryArgs, serialize, endpointDefinition, endpointName]);
  40. var cache2 = useRef(incoming);
  41. useEffect(function () {
  42. if (cache2.current.serialized !== incoming.serialized) {
  43. cache2.current = incoming;
  44. }
  45. }, [incoming]);
  46. return cache2.current.serialized === incoming.serialized ? cache2.current.queryArgs : queryArgs;
  47. }
  48. // src/query/react/constants.ts
  49. var UNINITIALIZED_VALUE = Symbol();
  50. // src/query/react/useShallowStableValue.ts
  51. import { useEffect as useEffect2, useRef as useRef2 } from "react";
  52. import { shallowEqual } from "react-redux";
  53. function useShallowStableValue(value) {
  54. var cache2 = useRef2(value);
  55. useEffect2(function () {
  56. if (!shallowEqual(cache2.current, value)) {
  57. cache2.current = value;
  58. }
  59. }, [value]);
  60. return shallowEqual(cache2.current, value) ? cache2.current : value;
  61. }
  62. // src/query/defaultSerializeQueryArgs.ts
  63. import { isPlainObject } from "@reduxjs/toolkit";
  64. var cache = WeakMap ? new WeakMap() : void 0;
  65. var defaultSerializeQueryArgs = function (_c) {
  66. var endpointName = _c.endpointName, queryArgs = _c.queryArgs;
  67. var serialized = "";
  68. var cached = cache == null ? void 0 : cache.get(queryArgs);
  69. if (typeof cached === "string") {
  70. serialized = cached;
  71. }
  72. else {
  73. var stringified = JSON.stringify(queryArgs, function (key, value) { return isPlainObject(value) ? Object.keys(value).sort().reduce(function (acc, key2) {
  74. acc[key2] = value[key2];
  75. return acc;
  76. }, {}) : value; });
  77. if (isPlainObject(queryArgs)) {
  78. cache == null ? void 0 : cache.set(queryArgs, stringified);
  79. }
  80. serialized = stringified;
  81. }
  82. return endpointName + "(" + serialized + ")";
  83. };
  84. // src/query/react/buildHooks.ts
  85. var useIsomorphicLayoutEffect = typeof window !== "undefined" && !!window.document && !!window.document.createElement ? useLayoutEffect : useEffect3;
  86. var defaultMutationStateSelector = function (x) { return x; };
  87. var noPendingQueryStateSelector = function (selected) {
  88. if (selected.isUninitialized) {
  89. return __spreadProps(__spreadValues({}, selected), {
  90. isUninitialized: false,
  91. isFetching: true,
  92. isLoading: selected.data !== void 0 ? false : true,
  93. status: QueryStatus.pending
  94. });
  95. }
  96. return selected;
  97. };
  98. function buildHooks(_c) {
  99. var api = _c.api, _d = _c.moduleOptions, batch = _d.batch, useDispatch = _d.useDispatch, useSelector = _d.useSelector, useStore = _d.useStore, unstable__sideEffectsInRender = _d.unstable__sideEffectsInRender, serializeQueryArgs = _c.serializeQueryArgs, context = _c.context;
  100. var usePossiblyImmediateEffect = unstable__sideEffectsInRender ? function (cb) { return cb(); } : useEffect3;
  101. return { buildQueryHooks: buildQueryHooks, buildMutationHook: buildMutationHook, usePrefetch: usePrefetch };
  102. function queryStatePreSelector(currentState, lastResult, queryArgs) {
  103. if ((lastResult == null ? void 0 : lastResult.endpointName) && currentState.isUninitialized) {
  104. var endpointName = lastResult.endpointName;
  105. var endpointDefinition = context.endpointDefinitions[endpointName];
  106. if (serializeQueryArgs({
  107. queryArgs: lastResult.originalArgs,
  108. endpointDefinition: endpointDefinition,
  109. endpointName: endpointName
  110. }) === serializeQueryArgs({
  111. queryArgs: queryArgs,
  112. endpointDefinition: endpointDefinition,
  113. endpointName: endpointName
  114. }))
  115. lastResult = void 0;
  116. }
  117. var data = currentState.isSuccess ? currentState.data : lastResult == null ? void 0 : lastResult.data;
  118. if (data === void 0)
  119. data = currentState.data;
  120. var hasData = data !== void 0;
  121. var isFetching = currentState.isLoading;
  122. var isLoading = !hasData && isFetching;
  123. var isSuccess = currentState.isSuccess || isFetching && hasData;
  124. return __spreadProps(__spreadValues({}, currentState), {
  125. data: data,
  126. currentData: currentState.data,
  127. isFetching: isFetching,
  128. isLoading: isLoading,
  129. isSuccess: isSuccess
  130. });
  131. }
  132. function usePrefetch(endpointName, defaultOptions) {
  133. var dispatch = useDispatch();
  134. var stableDefaultOptions = useShallowStableValue(defaultOptions);
  135. return useCallback(function (arg, options) { return dispatch(api.util.prefetch(endpointName, arg, __spreadValues(__spreadValues({}, stableDefaultOptions), options))); }, [endpointName, dispatch, stableDefaultOptions]);
  136. }
  137. function buildQueryHooks(name) {
  138. var useQuerySubscription = function (arg, _c) {
  139. var _d = _c === void 0 ? {} : _c, refetchOnReconnect = _d.refetchOnReconnect, refetchOnFocus = _d.refetchOnFocus, refetchOnMountOrArgChange = _d.refetchOnMountOrArgChange, _e = _d.skip, skip = _e === void 0 ? false : _e, _f = _d.pollingInterval, pollingInterval = _f === void 0 ? 0 : _f;
  140. var initiate = api.endpoints[name].initiate;
  141. var dispatch = useDispatch();
  142. var stableArg = useStableQueryArgs(skip ? skipToken : arg, defaultSerializeQueryArgs, context.endpointDefinitions[name], name);
  143. var stableSubscriptionOptions = useShallowStableValue({
  144. refetchOnReconnect: refetchOnReconnect,
  145. refetchOnFocus: refetchOnFocus,
  146. pollingInterval: pollingInterval
  147. });
  148. var lastRenderHadSubscription = useRef3(false);
  149. var promiseRef = useRef3();
  150. var _g = promiseRef.current || {}, queryCacheKey = _g.queryCacheKey, requestId = _g.requestId;
  151. var currentRenderHasSubscription = false;
  152. if (queryCacheKey && requestId) {
  153. var returnedValue = dispatch(api.internalActions.internal_probeSubscription({
  154. queryCacheKey: queryCacheKey,
  155. requestId: requestId
  156. }));
  157. if (process.env.NODE_ENV !== "production") {
  158. if (typeof returnedValue !== "boolean") {
  159. throw new Error("Warning: Middleware for RTK-Query API at reducerPath \"" + api.reducerPath + "\" has not been added to the store.\n You must add the middleware for RTK-Query to function correctly!");
  160. }
  161. }
  162. currentRenderHasSubscription = !!returnedValue;
  163. }
  164. var subscriptionRemoved = !currentRenderHasSubscription && lastRenderHadSubscription.current;
  165. usePossiblyImmediateEffect(function () {
  166. lastRenderHadSubscription.current = currentRenderHasSubscription;
  167. });
  168. usePossiblyImmediateEffect(function () {
  169. if (subscriptionRemoved) {
  170. promiseRef.current = void 0;
  171. }
  172. }, [subscriptionRemoved]);
  173. usePossiblyImmediateEffect(function () {
  174. var _a;
  175. var lastPromise = promiseRef.current;
  176. if (typeof process !== "undefined" && process.env.NODE_ENV === "removeMeOnCompilation") {
  177. console.log(subscriptionRemoved);
  178. }
  179. if (stableArg === skipToken) {
  180. lastPromise == null ? void 0 : lastPromise.unsubscribe();
  181. promiseRef.current = void 0;
  182. return;
  183. }
  184. var lastSubscriptionOptions = (_a = promiseRef.current) == null ? void 0 : _a.subscriptionOptions;
  185. if (!lastPromise || lastPromise.arg !== stableArg) {
  186. lastPromise == null ? void 0 : lastPromise.unsubscribe();
  187. var promise = dispatch(initiate(stableArg, {
  188. subscriptionOptions: stableSubscriptionOptions,
  189. forceRefetch: refetchOnMountOrArgChange
  190. }));
  191. promiseRef.current = promise;
  192. }
  193. else if (stableSubscriptionOptions !== lastSubscriptionOptions) {
  194. lastPromise.updateSubscriptionOptions(stableSubscriptionOptions);
  195. }
  196. }, [
  197. dispatch,
  198. initiate,
  199. refetchOnMountOrArgChange,
  200. stableArg,
  201. stableSubscriptionOptions,
  202. subscriptionRemoved
  203. ]);
  204. useEffect3(function () {
  205. return function () {
  206. var _a;
  207. (_a = promiseRef.current) == null ? void 0 : _a.unsubscribe();
  208. promiseRef.current = void 0;
  209. };
  210. }, []);
  211. return useMemo2(function () { return ({
  212. refetch: function () {
  213. var _a;
  214. if (!promiseRef.current)
  215. throw new Error("Cannot refetch a query that has not been started yet.");
  216. return (_a = promiseRef.current) == null ? void 0 : _a.refetch();
  217. }
  218. }); }, []);
  219. };
  220. var useLazyQuerySubscription = function (_c) {
  221. var _d = _c === void 0 ? {} : _c, refetchOnReconnect = _d.refetchOnReconnect, refetchOnFocus = _d.refetchOnFocus, _e = _d.pollingInterval, pollingInterval = _e === void 0 ? 0 : _e;
  222. var initiate = api.endpoints[name].initiate;
  223. var dispatch = useDispatch();
  224. var _f = useState(UNINITIALIZED_VALUE), arg = _f[0], setArg = _f[1];
  225. var promiseRef = useRef3();
  226. var stableSubscriptionOptions = useShallowStableValue({
  227. refetchOnReconnect: refetchOnReconnect,
  228. refetchOnFocus: refetchOnFocus,
  229. pollingInterval: pollingInterval
  230. });
  231. usePossiblyImmediateEffect(function () {
  232. var _a, _b;
  233. var lastSubscriptionOptions = (_a = promiseRef.current) == null ? void 0 : _a.subscriptionOptions;
  234. if (stableSubscriptionOptions !== lastSubscriptionOptions) {
  235. (_b = promiseRef.current) == null ? void 0 : _b.updateSubscriptionOptions(stableSubscriptionOptions);
  236. }
  237. }, [stableSubscriptionOptions]);
  238. var subscriptionOptionsRef = useRef3(stableSubscriptionOptions);
  239. usePossiblyImmediateEffect(function () {
  240. subscriptionOptionsRef.current = stableSubscriptionOptions;
  241. }, [stableSubscriptionOptions]);
  242. var trigger = useCallback(function (arg2, preferCacheValue) {
  243. if (preferCacheValue === void 0) { preferCacheValue = false; }
  244. var promise;
  245. batch(function () {
  246. var _a;
  247. (_a = promiseRef.current) == null ? void 0 : _a.unsubscribe();
  248. promiseRef.current = promise = dispatch(initiate(arg2, {
  249. subscriptionOptions: subscriptionOptionsRef.current,
  250. forceRefetch: !preferCacheValue
  251. }));
  252. setArg(arg2);
  253. });
  254. return promise;
  255. }, [dispatch, initiate]);
  256. useEffect3(function () {
  257. return function () {
  258. var _a;
  259. (_a = promiseRef == null ? void 0 : promiseRef.current) == null ? void 0 : _a.unsubscribe();
  260. };
  261. }, []);
  262. useEffect3(function () {
  263. if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {
  264. trigger(arg, true);
  265. }
  266. }, [arg, trigger]);
  267. return useMemo2(function () { return [trigger, arg]; }, [trigger, arg]);
  268. };
  269. var useQueryState = function (arg, _c) {
  270. var _d = _c === void 0 ? {} : _c, _e = _d.skip, skip = _e === void 0 ? false : _e, selectFromResult = _d.selectFromResult;
  271. var select = api.endpoints[name].select;
  272. var stableArg = useStableQueryArgs(skip ? skipToken : arg, serializeQueryArgs, context.endpointDefinitions[name], name);
  273. var lastValue = useRef3();
  274. var selectDefaultResult = useMemo2(function () { return createSelector([
  275. select(stableArg),
  276. function (_, lastResult) { return lastResult; },
  277. function (_) { return stableArg; }
  278. ], queryStatePreSelector); }, [select, stableArg]);
  279. var querySelector = useMemo2(function () { return selectFromResult ? createSelector([selectDefaultResult], selectFromResult) : selectDefaultResult; }, [selectDefaultResult, selectFromResult]);
  280. var currentState = useSelector(function (state) { return querySelector(state, lastValue.current); }, shallowEqual2);
  281. var store = useStore();
  282. var newLastValue = selectDefaultResult(store.getState(), lastValue.current);
  283. useIsomorphicLayoutEffect(function () {
  284. lastValue.current = newLastValue;
  285. }, [newLastValue]);
  286. return currentState;
  287. };
  288. return {
  289. useQueryState: useQueryState,
  290. useQuerySubscription: useQuerySubscription,
  291. useLazyQuerySubscription: useLazyQuerySubscription,
  292. useLazyQuery: function (options) {
  293. var _c = useLazyQuerySubscription(options), trigger = _c[0], arg = _c[1];
  294. var queryStateResults = useQueryState(arg, __spreadProps(__spreadValues({}, options), {
  295. skip: arg === UNINITIALIZED_VALUE
  296. }));
  297. var info = useMemo2(function () { return ({ lastArg: arg }); }, [arg]);
  298. return useMemo2(function () { return [trigger, queryStateResults, info]; }, [trigger, queryStateResults, info]);
  299. },
  300. useQuery: function (arg, options) {
  301. var querySubscriptionResults = useQuerySubscription(arg, options);
  302. var queryStateResults = useQueryState(arg, __spreadValues({
  303. selectFromResult: arg === skipToken || (options == null ? void 0 : options.skip) ? void 0 : noPendingQueryStateSelector
  304. }, options));
  305. var data = queryStateResults.data, status = queryStateResults.status, isLoading = queryStateResults.isLoading, isSuccess = queryStateResults.isSuccess, isError = queryStateResults.isError, error = queryStateResults.error;
  306. useDebugValue({ data: data, status: status, isLoading: isLoading, isSuccess: isSuccess, isError: isError, error: error });
  307. return useMemo2(function () { return __spreadValues(__spreadValues({}, queryStateResults), querySubscriptionResults); }, [queryStateResults, querySubscriptionResults]);
  308. }
  309. };
  310. }
  311. function buildMutationHook(name) {
  312. return function (_c) {
  313. var _d = _c === void 0 ? {} : _c, _e = _d.selectFromResult, selectFromResult = _e === void 0 ? defaultMutationStateSelector : _e, fixedCacheKey = _d.fixedCacheKey;
  314. var _f = api.endpoints[name], select = _f.select, initiate = _f.initiate;
  315. var dispatch = useDispatch();
  316. var _g = useState(), promise = _g[0], setPromise = _g[1];
  317. useEffect3(function () { return function () {
  318. if (!(promise == null ? void 0 : promise.arg.fixedCacheKey)) {
  319. promise == null ? void 0 : promise.reset();
  320. }
  321. }; }, [promise]);
  322. var triggerMutation = useCallback(function (arg) {
  323. var promise2 = dispatch(initiate(arg, { fixedCacheKey: fixedCacheKey }));
  324. setPromise(promise2);
  325. return promise2;
  326. }, [dispatch, initiate, fixedCacheKey]);
  327. var requestId = (promise || {}).requestId;
  328. var mutationSelector = useMemo2(function () { return createSelector([select({ fixedCacheKey: fixedCacheKey, requestId: promise == null ? void 0 : promise.requestId })], selectFromResult); }, [select, promise, selectFromResult, fixedCacheKey]);
  329. var currentState = useSelector(mutationSelector, shallowEqual2);
  330. var originalArgs = fixedCacheKey == null ? promise == null ? void 0 : promise.arg.originalArgs : void 0;
  331. var reset = useCallback(function () {
  332. batch(function () {
  333. if (promise) {
  334. setPromise(void 0);
  335. }
  336. if (fixedCacheKey) {
  337. dispatch(api.internalActions.removeMutationResult({
  338. requestId: requestId,
  339. fixedCacheKey: fixedCacheKey
  340. }));
  341. }
  342. });
  343. }, [dispatch, fixedCacheKey, promise, requestId]);
  344. var endpointName = currentState.endpointName, data = currentState.data, status = currentState.status, isLoading = currentState.isLoading, isSuccess = currentState.isSuccess, isError = currentState.isError, error = currentState.error;
  345. useDebugValue({
  346. endpointName: endpointName,
  347. data: data,
  348. status: status,
  349. isLoading: isLoading,
  350. isSuccess: isSuccess,
  351. isError: isError,
  352. error: error
  353. });
  354. var finalState = useMemo2(function () { return __spreadProps(__spreadValues({}, currentState), { originalArgs: originalArgs, reset: reset }); }, [currentState, originalArgs, reset]);
  355. return useMemo2(function () { return [triggerMutation, finalState]; }, [triggerMutation, finalState]);
  356. };
  357. }
  358. }
  359. // src/query/endpointDefinitions.ts
  360. var DefinitionType;
  361. (function (DefinitionType2) {
  362. DefinitionType2["query"] = "query";
  363. DefinitionType2["mutation"] = "mutation";
  364. })(DefinitionType || (DefinitionType = {}));
  365. function isQueryDefinition(e) {
  366. return e.type === DefinitionType.query;
  367. }
  368. function isMutationDefinition(e) {
  369. return e.type === DefinitionType.mutation;
  370. }
  371. // src/query/utils/capitalize.ts
  372. function capitalize(str) {
  373. return str.replace(str[0], str[0].toUpperCase());
  374. }
  375. // src/query/tsHelpers.ts
  376. function safeAssign(target) {
  377. var args = [];
  378. for (var _i = 1; _i < arguments.length; _i++) {
  379. args[_i - 1] = arguments[_i];
  380. }
  381. Object.assign.apply(Object, __spreadArray([target], args));
  382. }
  383. // src/query/react/module.ts
  384. import { useDispatch as rrUseDispatch, useSelector as rrUseSelector, useStore as rrUseStore, batch as rrBatch } from "react-redux";
  385. var reactHooksModuleName = /* @__PURE__ */ Symbol();
  386. var reactHooksModule = function (_c) {
  387. var _d = _c === void 0 ? {} : _c, _e = _d.batch, batch = _e === void 0 ? rrBatch : _e, _f = _d.useDispatch, useDispatch = _f === void 0 ? rrUseDispatch : _f, _g = _d.useSelector, useSelector = _g === void 0 ? rrUseSelector : _g, _h = _d.useStore, useStore = _h === void 0 ? rrUseStore : _h, _j = _d.unstable__sideEffectsInRender, unstable__sideEffectsInRender = _j === void 0 ? false : _j;
  388. return ({
  389. name: reactHooksModuleName,
  390. init: function (api, _c, context) {
  391. var serializeQueryArgs = _c.serializeQueryArgs;
  392. var anyApi = api;
  393. var _d = buildHooks({
  394. api: api,
  395. moduleOptions: {
  396. batch: batch,
  397. useDispatch: useDispatch,
  398. useSelector: useSelector,
  399. useStore: useStore,
  400. unstable__sideEffectsInRender: unstable__sideEffectsInRender
  401. },
  402. serializeQueryArgs: serializeQueryArgs,
  403. context: context
  404. }), buildQueryHooks = _d.buildQueryHooks, buildMutationHook = _d.buildMutationHook, usePrefetch = _d.usePrefetch;
  405. safeAssign(anyApi, { usePrefetch: usePrefetch });
  406. safeAssign(context, { batch: batch });
  407. return {
  408. injectEndpoint: function (endpointName, definition) {
  409. if (isQueryDefinition(definition)) {
  410. var _c = buildQueryHooks(endpointName), useQuery = _c.useQuery, useLazyQuery = _c.useLazyQuery, useLazyQuerySubscription = _c.useLazyQuerySubscription, useQueryState = _c.useQueryState, useQuerySubscription = _c.useQuerySubscription;
  411. safeAssign(anyApi.endpoints[endpointName], {
  412. useQuery: useQuery,
  413. useLazyQuery: useLazyQuery,
  414. useLazyQuerySubscription: useLazyQuerySubscription,
  415. useQueryState: useQueryState,
  416. useQuerySubscription: useQuerySubscription
  417. });
  418. api["use" + capitalize(endpointName) + "Query"] = useQuery;
  419. api["useLazy" + capitalize(endpointName) + "Query"] = useLazyQuery;
  420. }
  421. else if (isMutationDefinition(definition)) {
  422. var useMutation = buildMutationHook(endpointName);
  423. safeAssign(anyApi.endpoints[endpointName], {
  424. useMutation: useMutation
  425. });
  426. api["use" + capitalize(endpointName) + "Mutation"] = useMutation;
  427. }
  428. }
  429. };
  430. }
  431. });
  432. };
  433. // src/query/react/index.ts
  434. export * from "@reduxjs/toolkit/query";
  435. // src/query/react/ApiProvider.tsx
  436. import { configureStore } from "@reduxjs/toolkit";
  437. import { useEffect as useEffect4 } from "react";
  438. import React from "react";
  439. import { Provider } from "react-redux";
  440. import { setupListeners } from "@reduxjs/toolkit/query";
  441. function ApiProvider(props) {
  442. var store = React.useState(function () {
  443. var _c;
  444. return configureStore({
  445. reducer: (_c = {},
  446. _c[props.api.reducerPath] = props.api.reducer,
  447. _c),
  448. middleware: function (gDM) { return gDM().concat(props.api.middleware); }
  449. });
  450. })[0];
  451. useEffect4(function () { return props.setupListeners === false ? void 0 : setupListeners(store.dispatch, props.setupListeners); }, [props.setupListeners, store.dispatch]);
  452. return /* @__PURE__ */ React.createElement(Provider, {
  453. store: store,
  454. context: props.context
  455. }, props.children);
  456. }
  457. // src/query/react/index.ts
  458. var createApi = /* @__PURE__ */ buildCreateApi(coreModule(), reactHooksModule());
  459. export { ApiProvider, createApi, reactHooksModule, reactHooksModuleName };
  460. //# sourceMappingURL=rtk-query-react.esm.js.map