UNPKG

@reduxjs/toolkit

Version:

The official, opinionated, batteries-included toolset for efficient Redux development

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