MCPcopy Create free account
hub / github.com/LeetCode-OpenSource/ayanami / setupEffectActions

Function setupEffectActions

src/core/ikari.ts:203–229  ·  view source on GitHub ↗
(
  effectActions: OriginalEffectActions<State>,
  state$: Observable<State>,
)

Source from the content-addressed store, hash-verified

201}
202
203function setupEffectActions<State>(
204 effectActions: OriginalEffectActions<State>,
205 state$: Observable<State>,
206): [Observable<Action<State>>, TriggerActions] {
207 const actions: TriggerActions = {}
208 const effects: Observable<Action<State>>[] = []
209
210 Object.keys(effectActions).forEach((actionName) => {
211 const payload$ = new Subject<any>()
212 actions[actionName] = (payload: any) => payload$.next(payload)
213
214 const effect$: Observable<EffectAction> = effectActions[actionName](payload$, state$)
215 effects.push(
216 effect$.pipe(
217 map(
218 (effectAction): Action<State> => ({
219 effectAction,
220 originalActionName: actionName,
221 }),
222 ),
223 catchRxError(),
224 ),
225 )
226 })
227
228 return [merge(...effects), actions]
229}
230
231function setupReducerActions<State>(
232 reducerActions: OriginalReducerActions<State>,

Callers 1

constructorMethod · 0.85

Calls 1

catchRxErrorFunction · 0.85

Tested by

no test coverage detected