From 91a628eeb357a5397e988ed34045c733d0d2c5b5 Mon Sep 17 00:00:00 2001 From: Avraham Sakal Date: Tue, 16 May 2023 21:06:43 -0400 Subject: [PATCH] add Interpreter().start() for convenient start-upon-creation --- src/index.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 0fe9fc7..2b7a20d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -45,6 +45,7 @@ export interface Interpreter_T { subscriptions: Record; isTransitioning: boolean; isPaused: boolean; + start: ()=>Interpreter_T; } /** @@ -58,7 +59,9 @@ export interface Interpreter_T { */ export function Interpreter(machine:Machine_T, initialContext:any, initialStateName?:string) : Interpreter_T{ if(typeof initialStateName === 'undefined'){ initialStateName = machine.states[0].name; } - const interpreter = {machine, state: initialStateName, context:initialContext, eventQueue:[], isTransitioning:false, subscriptions: {}, isPaused: true} + //@ts-expect-error + const interpreter : Interpreter_T = {machine, state: initialStateName, context:initialContext, eventQueue:[], isTransitioning:false, subscriptions: {}, isPaused: true}; + interpreter.start = ()=>{ start(interpreter); return interpreter; } send(interpreter, ['entry', null] ); return interpreter; }