UNPKG

state-switch

Version:

State Switch is a Change Monitor/Guarder for Async Actions.

24 lines (21 loc) 575 B
import type { EventObject, Interpreter, StateSchema, } from 'xstate' const guardMachineEvent = <TServiceCtlState extends StateSchema, TServiceCtlEvent extends EventObject> ( interpreter: Interpreter< any, TServiceCtlState, TServiceCtlEvent >, event: TServiceCtlEvent['type'], ): void => { if (!interpreter.state.can(event)) { throw new Error([ `StateMachine "${interpreter.id}" can not accept event "${event}"`, ` with current state "${interpreter.state.value}"`, ].join('')) } } export { guardMachineEvent }