@reduxjs/toolkit
Version:
The official, opinionated, batteries-included toolset for efficient Redux development
2 lines • 8.81 kB
JavaScript
import{buildCreateApi as ue,coreModule as ye,copyWithStructuralSharing as oe,setupListeners as pe,QueryStatus as fe,skipToken as b}from"@reduxjs/toolkit/query";import"@reduxjs/toolkit";import{batch as Ce,useDispatch as Ne,useSelector as Le,useStore as He}from"react-redux";import{createSelector as ze}from"reselect";function _(e){return e.replace(e[0],e[0].toUpperCase())}var he="query",Ie="mutation",Ue="infinitequery";function Qe(e){return e.type===he}function ce(e){return e.type===Ie}function $(e){return e.type===Ue}function z(e,...c){return Object.assign(e,...c)}import{formatProdErrorMessage as be,formatProdErrorMessage as Ee}from"@reduxjs/toolkit";import{useEffect as x,useRef as I,useMemo as R,useContext as de,useCallback as k,useDebugValue as G,useLayoutEffect as le,useState as ne}from"react";import{shallowEqual as w,Provider as Re,ReactReduxContext as ge}from"react-redux";var j=Symbol();function Z(e){let c=I(e),g=R(()=>oe(c.current,e),[e]);return x(()=>{c.current!==g&&(c.current=g)},[g]),g}function v(e){let c=I(e);return x(()=>{w(c.current,e)||(c.current=e)},[e]),w(c.current,e)?c.current:e}var ke=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Oe=ke(),Me=()=>typeof navigator<"u"&&navigator.product==="ReactNative",Fe=Me(),we=()=>Oe||Fe?le:x,ve=we(),Te=e=>e.isUninitialized?{...e,isUninitialized:!1,isFetching:!0,isLoading:e.data===void 0,status:fe.pending}:e;function re(e,...c){let g={};return c.forEach(A=>{g[A]=e[A]}),g}var ie=["data","status","isLoading","isSuccess","isError","error"];function De({api:e,moduleOptions:{batch:c,hooks:{useDispatch:g,useSelector:A,useStore:W},unstable__sideEffectsInRender:U,createSelector:C},serializeQueryArgs:E,context:N}){let O=U?t=>t():x,L=t=>t.current?.unsubscribe?.(),q=N.endpointDefinitions;return{buildQueryHooks:ee,buildInfiniteQueryHooks:Se,buildMutationHook:Be,usePrefetch:K};function J(t,i,p){if(i?.endpointName&&t.isUninitialized){let{endpointName:a}=i,y=q[a];p!==b&&E({queryArgs:i.originalArgs,endpointDefinition:y,endpointName:a})===E({queryArgs:p,endpointDefinition:y,endpointName:a})&&(i=void 0)}let u=t.isSuccess?t.data:i?.data;u===void 0&&(u=t.data);let s=u!==void 0,n=t.isLoading,r=(!i||i.isLoading||i.isUninitialized)&&!s&&n,o=t.isSuccess||s&&(n&&!i?.isError||t.isUninitialized);return{...t,data:u,currentData:t.data,isFetching:n,isLoading:r,isSuccess:o}}function m(t,i,p){if(i?.endpointName&&t.isUninitialized){let{endpointName:a}=i,y=q[a];p!==b&&E({queryArgs:i.originalArgs,endpointDefinition:y,endpointName:a})===E({queryArgs:p,endpointDefinition:y,endpointName:a})&&(i=void 0)}let u=t.isSuccess?t.data:i?.data;u===void 0&&(u=t.data);let s=u!==void 0,n=t.isLoading,r=(!i||i.isLoading||i.isUninitialized)&&!s&&n,o=t.isSuccess||n&&s;return{...t,data:u,currentData:t.data,isFetching:n,isLoading:r,isSuccess:o}}function K(t,i){let p=g(),u=v(i);return k((s,n)=>p(e.util.prefetch(t,s,{...u,...n})),[t,p,u])}function h(t,i,{refetchOnReconnect:p,refetchOnFocus:u,refetchOnMountOrArgChange:s,skip:n=!1,pollingInterval:r=0,skipPollingIfUnfocused:o=!1,...a}={}){let{initiate:y}=e.endpoints[t],d=g(),S=I(void 0);if(!S.current){let F=d(e.internalActions.internal_getRTKQSubscriptions());S.current=F}let f=Z(n?b:i),Q=v({refetchOnReconnect:p,refetchOnFocus:u,pollingInterval:r,skipPollingIfUnfocused:o}),T=a.initialPageParam,l=v(T),B=a.refetchCachedPages,P=v(B),D=I(void 0),{queryCacheKey:V,requestId:se}=D.current||{},ae=!1;V&&se&&(ae=S.current.isRequestSubscribed(V,se));let te=!ae&&D.current!==void 0;return O(()=>{te&&(D.current=void 0)},[te]),O(()=>{let F=D.current;if(f===b){F?.unsubscribe(),D.current=void 0;return}let Pe=D.current?.subscriptionOptions;if(!F||F.arg!==f){F?.unsubscribe();let Ae=d(y(f,{subscriptionOptions:Q,forceRefetch:s,...$(q[t])?{initialPageParam:l,refetchCachedPages:P}:{}}));D.current=Ae}else Q!==Pe&&F.updateSubscriptionOptions(Q)},[d,y,s,f,Q,te,l,P,t]),[D,d,y,Q]}function M(t,i){return(u,{skip:s=!1,selectFromResult:n}={})=>{let{select:r}=e.endpoints[t],o=Z(s?b:u),a=I(void 0),y=R(()=>C([r(o),(T,l)=>l,T=>o],i,{memoizeOptions:{resultEqualityCheck:w}}),[r,o]),d=R(()=>n?C([y],n,{devModeChecks:{identityFunctionCheck:"never"}}):y,[y,n]),S=A(T=>d(T,a.current),w),f=W(),Q=y(f.getState(),a.current);return ve(()=>{a.current=Q},[Q]),S}}function H(t){x(()=>()=>{L(t),t.current=void 0},[t])}function X(t){if(!t.current)throw new Error(be(38));return t.current.refetch()}function ee(t){let i=(s,n={})=>{let[r]=h(t,s,n);return H(r),R(()=>({refetch:()=>X(r)}),[r])},p=({refetchOnReconnect:s,refetchOnFocus:n,pollingInterval:r=0,skipPollingIfUnfocused:o=!1}={})=>{let{initiate:a}=e.endpoints[t],y=g(),[d,S]=ne(j),f=I(void 0),Q=v({refetchOnReconnect:s,refetchOnFocus:n,pollingInterval:r,skipPollingIfUnfocused:o});O(()=>{let P=f.current?.subscriptionOptions;Q!==P&&f.current?.updateSubscriptionOptions(Q)},[Q]);let T=I(Q);O(()=>{T.current=Q},[Q]);let l=k(function(P,D=!1){let V;return c(()=>{L(f),f.current=V=y(a(P,{subscriptionOptions:T.current,forceRefetch:!D})),S(P)}),V},[y,a]),B=k(()=>{f.current?.queryCacheKey&&y(e.internalActions.removeQueryResult({queryCacheKey:f.current?.queryCacheKey}))},[y]);return x(()=>()=>{L(f)},[]),x(()=>{d!==j&&!f.current&&l(d,!0)},[d,l]),R(()=>[l,d,{reset:B}],[l,d,B])},u=M(t,J);return{useQueryState:u,useQuerySubscription:i,useLazyQuerySubscription:p,useLazyQuery(s){let[n,r,{reset:o}]=p(s),a=u(r,{...s,skip:r===j}),y=R(()=>({lastArg:r}),[r]);return R(()=>[n,{...a,reset:o},y],[n,a,o,y])},useQuery(s,n){let r=i(s,n),o=u(s,{selectFromResult:s===b||n?.skip?void 0:Te,...n}),a=re(o,...ie);return G(a),R(()=>({...o,...r}),[o,r])}}}function Se(t){let i=(u,s={})=>{let[n,r,o,a]=h(t,u,s),y=I(a);O(()=>{y.current=a},[a]);let d=s.refetchCachedPages,S=v(d),f=k(function(l,B){let P;return c(()=>{L(n),n.current=P=r(o(l,{subscriptionOptions:y.current,direction:B}))}),P},[n,r,o]);H(n);let Q=Z(s.skip?b:u),T=k(l=>{if(!n.current)throw new Error(Ee(38));let B={refetchCachedPages:l?.refetchCachedPages??S};return n.current.refetch(B)},[n,S]);return R(()=>({trigger:f,refetch:T,fetchNextPage:()=>f(Q,"forward"),fetchPreviousPage:()=>f(Q,"backward")}),[T,f,Q])},p=M(t,m);return{useInfiniteQueryState:p,useInfiniteQuerySubscription:i,useInfiniteQuery(u,s){let{refetch:n,fetchNextPage:r,fetchPreviousPage:o}=i(u,s),a=p(u,{selectFromResult:u===b||s?.skip?void 0:Te,...s}),y=re(a,...ie,"hasNextPage","hasPreviousPage");return G(y),R(()=>({...a,fetchNextPage:r,fetchPreviousPage:o,refetch:n}),[a,r,o,n])}}}function Be(t){return({selectFromResult:i,fixedCacheKey:p}={})=>{let{select:u,initiate:s}=e.endpoints[t],n=g(),[r,o]=ne();x(()=>()=>{r?.arg.fixedCacheKey||r?.reset()},[r]);let a=k(function(P){let D=n(s(P,{fixedCacheKey:p}));return o(D),D},[n,s,p]),{requestId:y}=r||{},d=R(()=>u({fixedCacheKey:p,requestId:r?.requestId}),[p,r,u]),S=R(()=>i?C([d],i):d,[i,d]),f=A(S,w),Q=p==null?r?.arg.originalArgs:void 0,T=k(()=>{c(()=>{r&&o(void 0),p&&n(e.internalActions.removeMutationResult({requestId:y,fixedCacheKey:p}))})},[n,p,r,y]),l=re(f,...ie,"endpointName");G(l);let B=R(()=>({...f,originalArgs:Q,reset:T}),[f,Q,T]);return R(()=>[a,B],[a,B])}}}var xe=Symbol(),me=({batch:e=Ce,hooks:c={useDispatch:Ne,useSelector:Le,useStore:He},createSelector:g=ze,unstable__sideEffectsInRender:A=!1,...W}={})=>({name:xe,init(U,{serializeQueryArgs:C},E){let N=U,{buildQueryHooks:O,buildInfiniteQueryHooks:L,buildMutationHook:q,usePrefetch:J}=De({api:U,moduleOptions:{batch:e,hooks:c,unstable__sideEffectsInRender:A,createSelector:g},serializeQueryArgs:C,context:E});return z(N,{usePrefetch:J}),z(E,{batch:e}),{injectEndpoint(m,K){if(Qe(K)){let{useQuery:h,useLazyQuery:M,useLazyQuerySubscription:H,useQueryState:X,useQuerySubscription:ee}=O(m);z(N.endpoints[m],{useQuery:h,useLazyQuery:M,useLazyQuerySubscription:H,useQueryState:X,useQuerySubscription:ee}),U[`use${_(m)}Query`]=h,U[`useLazy${_(m)}Query`]=M}if(ce(K)){let h=q(m);z(N.endpoints[m],{useMutation:h}),U[`use${_(m)}Mutation`]=h}else if($(K)){let{useInfiniteQuery:h,useInfiniteQuerySubscription:M,useInfiniteQueryState:H}=L(m);z(N.endpoints[m],{useInfiniteQuery:h,useInfiniteQuerySubscription:M,useInfiniteQueryState:H}),U[`use${_(m)}InfiniteQuery`]=h}}}}});export*from"@reduxjs/toolkit/query";import{configureStore as qe,formatProdErrorMessage as Ke}from"@reduxjs/toolkit";import*as Y from"react";function Ve(e){let c=e.context||ge;if(de(c))throw new Error(Ke(35));let[A]=Y.useState(()=>qe({reducer:{[e.api.reducerPath]:e.api.reducer},middleware:W=>W().concat(e.api.middleware)}));return x(()=>e.setupListeners===!1?void 0:pe(A.dispatch,e.setupListeners),[e.setupListeners,A.dispatch]),Y.createElement(Re,{store:A,context:c},e.children)}var Ft=ue(ye(),me());export{Ve as ApiProvider,j as UNINITIALIZED_VALUE,Ft as createApi,me as reactHooksModule,xe as reactHooksModuleName};
//# sourceMappingURL=rtk-query-react.browser.mjs.map