UNPKG

kiss-js-bloc

Version:

Bloc type state management solution for typescript

35 lines (23 loc) 783 B
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) } }