@reduxjs/toolkit
Version:
The official, opinionated, batteries-included toolset for efficient Redux development
1 lines • 4.38 kB
Source Map (JSON)
{"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":"8HA8DA,MAAaK,MAG+C,CAC1D,IAAMyB,GAAAA,EAAWxB,EAAAA,wBAAAA,CAAyB,EACpCqB,GAEJC,EAGYlB,EAAAA,oBACT,CACH,IAAMC,EACJiB,IAAYlB,EAAAA,kBACRE,EAAAA,aAAAA,EACAH,EAAAA,mBAAAA,CAAmBmB,CAAO,EAChC,SAASC,EAEP,GAAGP,EAA0B,CAE7B,OADAQ,EAASC,cAAc,GAAGT,CAAW,EAC9BX,CACT,CAGA,MAFAkB,GAAiCN,cAC/BM,EACKA,CAIT,EAEMA,EACJF,EAAwC,EAE1C,MAAO,CACL,GAAGG,EACHH,0CACAE,kCACF,CACF"}