diff --git a/packages/core/src/ModelState/ModelProxy.ts b/packages/core/src/ModelState/ModelProxy.ts index e88bd94..e484c2f 100644 --- a/packages/core/src/ModelState/ModelProxy.ts +++ b/packages/core/src/ModelState/ModelProxy.ts @@ -6,6 +6,15 @@ import { Action } from './Action'; export class ModelStateProxy extends Observable { protected instance?: ModelState; + isInited?: boolean; + + get current(): T { + if (!this.isInited) { + throw new Error('ModelStateProxy: should read value after initialization'); + } + return this.instance?.current as T; + } + proxy(instance: ModelState) { this.instance = instance; // init; @@ -19,6 +28,7 @@ export class ModelStateProxy extends Observable { this.instance.subscribe((action) => { super.trigger(action); }); + this.isInited = true; } next(action: Action) { @@ -29,11 +39,15 @@ export class ModelStateProxy extends Observable { export class ModelEventProxy extends Observable { protected instance?: ModelEvent; + isInited?: boolean; + proxy(instance: ModelEvent) { this.instance = instance; this.instance.subscribe((action) => { super.trigger(action); }); + + this.isInited = true; } next(action?: Action) {