UNPKG

@reduxjs/toolkit

Version:

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

1 lines • 4.4 kB
{"version":3,"names":["DynamicMiddlewareInstance","GetDispatch","GetState","MiddlewareApiConfig","TSHelpersExtractDispatchExtensions","createDynamicMiddleware","cDM","Context","ReactReduxContextValue","createDispatchHook","ReactReduxContext","useDispatch","useDefaultDispatch","Action","Dispatch","Middleware","UnknownAction","UseDispatchWithMiddlewareHook","State","DispatchType","Middlewares","CreateDispatchWithMiddlewareHook","middlewares","withTypes","MiddlewareConfig","ActionFromDispatch","ReactDynamicMiddlewareInstance","createDispatchWithMiddlewareHookFactory","context","createDispatchWithMiddlewareHook","instance","addMiddleware"],"sources":["../../../src/dynamicMiddleware/react/index.ts"],"sourcesContent":["import type {\n DynamicMiddlewareInstance,\n GetDispatch,\n GetState,\n MiddlewareApiConfig,\n TSHelpersExtractDispatchExtensions,\n} from '@reduxjs/toolkit'\nimport { createDynamicMiddleware as cDM } from '@reduxjs/toolkit'\nimport type { Context } from 'react'\nimport type { ReactReduxContextValue } from 'react-redux'\nimport {\n createDispatchHook,\n ReactReduxContext,\n useDispatch as useDefaultDispatch,\n} from 'react-redux'\nimport type { Action, Dispatch, Middleware, UnknownAction } from 'redux'\n\nexport type UseDispatchWithMiddlewareHook<\n Middlewares extends Middleware<any, State, DispatchType>[] = [],\n State = any,\n DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,\n> = () => TSHelpersExtractDispatchExtensions<Middlewares> & DispatchType\n\nexport type CreateDispatchWithMiddlewareHook<\n State = any,\n DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,\n> = {\n <\n Middlewares extends [\n Middleware<any, State, DispatchType>,\n ...Middleware<any, State, DispatchType>[],\n ],\n >(\n ...middlewares: Middlewares\n ): UseDispatchWithMiddlewareHook<Middlewares, State, DispatchType>\n withTypes<\n MiddlewareConfig extends MiddlewareApiConfig,\n >(): CreateDispatchWithMiddlewareHook<\n GetState<MiddlewareConfig>,\n GetDispatch<MiddlewareConfig>\n >\n}\n\ntype ActionFromDispatch<DispatchType extends Dispatch<Action>> =\n DispatchType extends Dispatch<infer Action> ? Action : never\n\ntype ReactDynamicMiddlewareInstance<\n State = any,\n DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,\n> = DynamicMiddlewareInstance<State, DispatchType> & {\n createDispatchWithMiddlewareHookFactory: (\n context?: Context<ReactReduxContextValue<\n State,\n ActionFromDispatch<DispatchType>\n > | null>,\n ) => CreateDispatchWithMiddlewareHook<State, DispatchType>\n createDispatchWithMiddlewareHook: CreateDispatchWithMiddlewareHook<\n State,\n DispatchType\n >\n}\n\nexport const createDynamicMiddleware = <\n State = any,\n DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,\n>(): ReactDynamicMiddlewareInstance<State, DispatchType> => {\n const instance = cDM<State, DispatchType>()\n const createDispatchWithMiddlewareHookFactory = (\n // @ts-ignore\n context: Context<ReactReduxContextValue<\n State,\n ActionFromDispatch<DispatchType>\n > | null> = ReactReduxContext,\n ) => {\n const useDispatch =\n context === ReactReduxContext\n ? useDefaultDispatch\n : createDispatchHook(context)\n function createDispatchWithMiddlewareHook<\n Middlewares extends Middleware<any, State, DispatchType>[],\n >(...middlewares: Middlewares) {\n instance.addMiddleware(...middlewares)\n return useDispatch\n }\n createDispatchWithMiddlewareHook.withTypes = () =>\n createDispatchWithMiddlewareHook\n return createDispatchWithMiddlewareHook as CreateDispatchWithMiddlewareHook<\n State,\n DispatchType\n >\n }\n\n const createDispatchWithMiddlewareHook =\n createDispatchWithMiddlewareHookFactory()\n\n return {\n ...instance,\n createDispatchWithMiddlewareHookFactory,\n createDispatchWithMiddlewareHook,\n }\n}\n"],"mappings":";;;;AA8DA,MAAaK,gCAG+C;CAC1D,MAAMyB,YAAAA,GAAWxB,iBAAAA,wBAAAA,CAAyB;CAC1C,MAAMqB,2CAEJC,UAGYlB,YAAAA,sBACT;EACH,MAAMC,cACJiB,YAAYlB,YAAAA,oBACRE,YAAAA,eAAAA,GACAH,YAAAA,mBAAAA,CAAmBmB,OAAO;EAChC,SAASC,iCAEP,GAAGP,aAA0B;GAC7BQ,SAASC,cAAc,GAAGT,WAAW;GACrC,OAAOX;EACT;EACAkB,iCAAiCN,kBAC/BM;EACF,OAAOA;CAIT;CAEA,MAAMA,mCACJF,wCAAwC;CAE1C,OAAO;EACL,GAAGG;EACHH;EACAE;CACF;AACF"}