import { SyncEvent } from 'ts-events'; export class Evented { events: any = {}; private _event(event: string) { let _event: SyncEvent = this.events[event]; if (!_event) { _event = new SyncEvent(); this.events[event] = _event; } return _event; } public emit(event: string, data: any): void { const seven: SyncEvent = this._event(event); seven.post(data); } public on(event: string, handler: any): void { let _event: SyncEvent = this.events[event]; if (!_event) { _event = new SyncEvent(); this.events[event] = _event; } _event.attach(handler); } }