transitionWithEffect<Event, State, REvent extends Event, InState extends State> function

StateTransitionCaller<Event, State> transitionWithEffect<Event, State, REvent extends Event, InState extends State>(
  1. StateTransition<REvent, InState, State> transition,
  2. SideEffect<REvent, InState> sideEffect
)

Implementation

StateTransitionCaller<Event, State> transitionWithEffect<Event, State,
        REvent extends Event, InState extends State>(
  StateTransition<REvent, InState, State> transition,
  SideEffect<REvent, InState> sideEffect,
) =>
    StateTransitionCaller<Event, State>(
      transition: (event, state) =>
          transition(event as REvent, state as InState),
      sideEffect: (event, state) =>
          sideEffect(event as REvent, state as InState),
    );