import type {
ActionObject,
EventObject,
Interpreter,
Sender,
State,
StateMachine,
Typestate,
} from 'xstate'
export interface MachineDefinition<
Ctx extends {} = {},
Events extends EventObject = EventObject,
TypeState extends Typestate<Ctx> = Typestate<Ctx>,
> {
Ctx: Ctx
Events: Events
Machine: StateMachine<Ctx, any, Events, Typestate<Ctx>, ActionObject<Ctx, Events>>
Actor: [State<Ctx, Events, any, TypeState>, Sender<Events>]
Service: Interpreter<Ctx, any, Events, TypeState>
TypeState: TypeState
}
Created
September 11, 2021 18:31
-
-
Save JamieMason/7b3aa7f2e254053b5023a980ef4ec7b1 to your computer and use it in GitHub Desktop.
Attempt to reduce boilerplate related to a Machine's types in XState
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment