kiss-js-bloc
Version:
Bloc type state management solution for typescript
35 lines (23 loc) • 783 B
text/typescript
import { BlocBase } from "./bloc_base";
import { EventEmitter } from "./event_emitter_1";
export interface EventHandler<State> {
(data : State): Function;
}
export abstract class Bloc<State extends Object> extends BlocBase<State> {
private eventEmitter : EventEmitter<State>;
constructor(initialState: State) {
super(initialState);
this.eventEmitter = new EventEmitter<State>();
}
on(event: string, handler: ((state: State) => any)) {
console.log("state after adding event " + this._state)
this.eventEmitter.on(event, handler)
}
call(event: string, state: State) {
console.log(state)
this.eventEmitter.emit(event, state)
}
addNewState(state: State) {
this.emit(state)
}
}