add subscribe method to interpreter

main
Avraham Sakal 2 years ago
parent c5b616287a
commit 1857b4474a

@ -46,6 +46,7 @@ export interface Interpreter_T<C> {
isTransitioning: boolean; isTransitioning: boolean;
isPaused: boolean; isPaused: boolean;
start: ()=>Interpreter_T<C>; start: ()=>Interpreter_T<C>;
subscribe: (callback:SubscriptionCallbackFunction_T<C>)=>Interpreter_T<C>;
} }
/** /**
@ -62,6 +63,7 @@ export function Interpreter<C>(machine:Machine_T<C>, initialContext:any, initial
//@ts-expect-error //@ts-expect-error
const interpreter : Interpreter_T<C> = {machine, state: initialStateName, context:initialContext, eventQueue:[], isTransitioning:false, subscriptions: {}, isPaused: true}; const interpreter : Interpreter_T<C> = {machine, state: initialStateName, context:initialContext, eventQueue:[], isTransitioning:false, subscriptions: {}, isPaused: true};
interpreter.start = ()=>{ start(interpreter); return interpreter; } interpreter.start = ()=>{ start(interpreter); return interpreter; }
interpreter.subscribe = (callback)=>{ subscribe(interpreter,callback); return interpreter; }
send(interpreter, ['entry', null] ); send(interpreter, ['entry', null] );
return interpreter; return interpreter;
} }

Loading…
Cancel
Save