UNPKG

@reduxjs/toolkit

Version:

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

2 lines 7.82 kB
import{coreModule as Pe,buildCreateApi as Oe}from"@reduxjs/toolkit/query";import"@reduxjs/toolkit";import{formatProdErrorMessage as fe}from"@reduxjs/toolkit";import"@reduxjs/toolkit";import{useCallback as C,useDebugValue as ee,useEffect as N,useLayoutEffect as le,useMemo as h,useRef as O,useState as te}from"react";import{QueryStatus as Qe,skipToken as K}from"@reduxjs/toolkit/query";import{shallowEqual as Z}from"react-redux";import{useEffect as ue,useRef as ye,useMemo as pe}from"react";function $(e,i,T,g){let m=pe(()=>({queryArgs:e,serialized:typeof e=="object"?i({queryArgs:e,endpointDefinition:T,endpointName:g}):e}),[e,i,T,g]),R=ye(m);return ue(()=>{R.current.serialized!==m.serialized&&(R.current=m)},[m]),R.current.serialized===m.serialized?R.current.queryArgs:e}var q=Symbol();import{useEffect as de,useRef as ce}from"react";import{shallowEqual as J}from"react-redux";function I(e){let i=ce(e);return de(()=>{J(i.current,e)||(i.current=e)},[e]),J(i.current,e)?i.current:e}import{createAction as Ie,createSlice as Ce,createSelector as Ke,createAsyncThunk as Ve,combineReducers as _e,createNextState as je,isAnyOf as We,isAllOf as $e,isAction as Ge,isPending as Ze,isRejected as Je,isFulfilled as Ye,isRejectedWithValue as Xe,isAsyncThunkAction as et,prepareAutoBatched as tt,SHOULD_AUTOBATCH as nt,isPlainObject as G,nanoid as rt}from"@reduxjs/toolkit";var Y=WeakMap?new WeakMap:void 0,X=({endpointName:e,queryArgs:i})=>{let T="",g=Y?.get(i);if(typeof g=="string")T=g;else{let m=JSON.stringify(i,(R,S)=>G(S)?Object.keys(S).sort().reduce((B,k)=>(B[k]=S[k],B),{}):S);G(i)&&Y?.set(i,m),T=m}return`${e}(${T})`};var Te=typeof window<"u"&&window.document&&window.document.createElement?le:N,ge=e=>e.isUninitialized?{...e,isUninitialized:!1,isFetching:!0,isLoading:e.data===void 0,status:Qe.pending}:e;function ne({api:e,moduleOptions:{batch:i,hooks:{useDispatch:T,useSelector:g,useStore:m},unstable__sideEffectsInRender:R,createSelector:S},serializeQueryArgs:B,context:k}){let U=R?t=>t():N;return{buildQueryHooks:M,buildMutationHook:H,usePrefetch:j};function _(t,d,u){if(d?.endpointName&&t.isUninitialized){let{endpointName:o}=d,l=k.endpointDefinitions[o];B({queryArgs:d.originalArgs,endpointDefinition:l,endpointName:o})===B({queryArgs:u,endpointDefinition:l,endpointName:o})&&(d=void 0)}let f=t.isSuccess?t.data:d?.data;f===void 0&&(f=t.data);let s=f!==void 0,r=t.isLoading,n=!s&&r,a=t.isSuccess||r&&s;return{...t,data:f,currentData:t.data,isFetching:r,isLoading:n,isSuccess:a}}function j(t,d){let u=T(),f=I(d);return C((s,r)=>u(e.util.prefetch(t,s,{...f,...r})),[t,u,f])}function M(t){let d=(s,{refetchOnReconnect:r,refetchOnFocus:n,refetchOnMountOrArgChange:a,skip:o=!1,pollingInterval:l=0,skipPollingIfUnfocused:y=!1}={})=>{let{initiate:b}=e.endpoints[t],p=T(),c=O();if(!c.current){let E=p(e.internalActions.internal_getRTKQSubscriptions());c.current=E}let x=$(o?K:s,X,k.endpointDefinitions[t],t),Q=I({refetchOnReconnect:r,refetchOnFocus:n,pollingInterval:l,skipPollingIfUnfocused:y}),A=O(!1),D=O(),{queryCacheKey:P,requestId:z}=D.current||{},F=!1;P&&z&&(F=c.current.isRequestSubscribed(P,z));let v=!F&&A.current;return U(()=>{A.current=F}),U(()=>{v&&(D.current=void 0)},[v]),U(()=>{let E=D.current;if(typeof process<"u",x===K){E?.unsubscribe(),D.current=void 0;return}let W=D.current?.subscriptionOptions;if(!E||E.arg!==x){E?.unsubscribe();let L=p(b(x,{subscriptionOptions:Q,forceRefetch:a}));D.current=L}else Q!==W&&E.updateSubscriptionOptions(Q)},[p,b,a,x,Q,v]),N(()=>()=>{D.current?.unsubscribe(),D.current=void 0},[]),h(()=>({refetch:()=>{if(!D.current)throw new Error(fe(38));return D.current?.refetch()}}),[])},u=({refetchOnReconnect:s,refetchOnFocus:r,pollingInterval:n=0,skipPollingIfUnfocused:a=!1}={})=>{let{initiate:o}=e.endpoints[t],l=T(),[y,b]=te(q),p=O(),c=I({refetchOnReconnect:s,refetchOnFocus:r,pollingInterval:n,skipPollingIfUnfocused:a});U(()=>{let A=p.current?.subscriptionOptions;c!==A&&p.current?.updateSubscriptionOptions(c)},[c]);let x=O(c);U(()=>{x.current=c},[c]);let Q=C(function(A,D=!1){let P;return i(()=>{p.current?.unsubscribe(),p.current=P=l(o(A,{subscriptionOptions:x.current,forceRefetch:!D})),b(A)}),P},[l,o]);return N(()=>()=>{p?.current?.unsubscribe()},[]),N(()=>{y!==q&&!p.current&&Q(y,!0)},[y,Q]),h(()=>[Q,y],[Q,y])},f=(s,{skip:r=!1,selectFromResult:n}={})=>{let{select:a}=e.endpoints[t],o=$(r?K:s,B,k.endpointDefinitions[t],t),l=O(),y=h(()=>S([a(o),(Q,A)=>A,Q=>o],_,{memoizeOptions:{resultEqualityCheck:Z}}),[a,o]),b=h(()=>n?S([y],n,{devModeChecks:{identityFunctionCheck:"never"}}):y,[y,n]),p=g(Q=>b(Q,l.current),Z),c=m(),x=y(c.getState(),l.current);return Te(()=>{l.current=x},[x]),p};return{useQueryState:f,useQuerySubscription:d,useLazyQuerySubscription:u,useLazyQuery(s){let[r,n]=u(s),a=f(n,{...s,skip:n===q}),o=h(()=>({lastArg:n}),[n]);return h(()=>[r,a,o],[r,a,o])},useQuery(s,r){let n=d(s,r),a=f(s,{selectFromResult:s===K||r?.skip?void 0:ge,...r}),{data:o,status:l,isLoading:y,isSuccess:b,isError:p,error:c}=a;return ee({data:o,status:l,isLoading:y,isSuccess:b,isError:p,error:c}),h(()=>({...a,...n}),[a,n])}}}function H(t){return({selectFromResult:d,fixedCacheKey:u}={})=>{let{select:f,initiate:s}=e.endpoints[t],r=T(),[n,a]=te();N(()=>()=>{n?.arg.fixedCacheKey||n?.reset()},[n]);let o=C(function(W){let L=r(s(W,{fixedCacheKey:u}));return a(L),L},[r,s,u]),{requestId:l}=n||{},y=h(()=>f({fixedCacheKey:u,requestId:n?.requestId}),[u,n,f]),b=h(()=>d?S([y],d):y,[d,y]),p=g(b,Z),c=u==null?n?.arg.originalArgs:void 0,x=C(()=>{i(()=>{n&&a(void 0),u&&r(e.internalActions.removeMutationResult({requestId:l,fixedCacheKey:u}))})},[r,u,n,l]),{endpointName:Q,data:A,status:D,isLoading:P,isSuccess:z,isError:F,error:v}=p;ee({endpointName:Q,data:A,status:D,isLoading:P,isSuccess:z,isError:F,error:v});let E=h(()=>({...p,originalArgs:c,reset:x}),[p,c,x]);return h(()=>[o,E],[o,E])}}}function re(e){return e.type==="query"}function ie(e){return e.type==="mutation"}function V(e){return e.replace(e[0],e[0].toUpperCase())}function w(e,...i){return Object.assign(e,...i)}import{useDispatch as Re,useSelector as De,useStore as me,batch as xe}from"react-redux";import{createSelector as Se}from"reselect";var se=Symbol(),oe=({batch:e=xe,hooks:i={useDispatch:Re,useSelector:De,useStore:me},createSelector:T=Se,unstable__sideEffectsInRender:g=!1,...m}={})=>({name:se,init(R,{serializeQueryArgs:S},B){let k=R,{buildQueryHooks:U,buildMutationHook:_,usePrefetch:j}=ne({api:R,moduleOptions:{batch:e,hooks:i,unstable__sideEffectsInRender:g,createSelector:T},serializeQueryArgs:S,context:B});return w(k,{usePrefetch:j}),w(B,{batch:e}),{injectEndpoint(M,H){if(re(H)){let{useQuery:t,useLazyQuery:d,useLazyQuerySubscription:u,useQueryState:f,useQuerySubscription:s}=U(M);w(k.endpoints[M],{useQuery:t,useLazyQuery:d,useLazyQuerySubscription:u,useQueryState:f,useQuerySubscription:s}),R[`use${V(M)}Query`]=t,R[`useLazy${V(M)}Query`]=d}else if(ie(H)){let t=_(M);w(k.endpoints[M],{useMutation:t}),R[`use${V(M)}Mutation`]=t}}}}});export*from"@reduxjs/toolkit/query";import{formatProdErrorMessage as Ae}from"@reduxjs/toolkit";import{configureStore as he}from"@reduxjs/toolkit";import{useContext as Be}from"react";import{useEffect as ke}from"react";import ae from"react";import{Provider as be,ReactReduxContext as Ee}from"react-redux";import{setupListeners as Me}from"@reduxjs/toolkit/query";function Ue(e){let i=e.context||Ee;if(Be(i))throw new Error(Ae(35));let[g]=ae.useState(()=>he({reducer:{[e.api.reducerPath]:e.api.reducer},middleware:m=>m().concat(e.api.middleware)}));return ke(()=>e.setupListeners===!1?void 0:Me(g.dispatch,e.setupListeners),[e.setupListeners,g.dispatch]),ae.createElement(be,{store:g,context:i},e.children)}var Lt=Oe(Pe(),oe());export{Ue as ApiProvider,Lt as createApi,oe as reactHooksModule,se as reactHooksModuleName}; //# sourceMappingURL=rtk-query-react.browser.mjs.map