grafana/public/app/core/utils/emitter.ts

36 lines
597 B
TypeScript
Raw Normal View History

///<reference path="../../headers/common.d.ts" />
import EventEmitter from 'eventemitter3';
var hasOwnProp = {}.hasOwnProperty;
function createName(name) {
return '$' + name;
}
export class Emitter {
emitter: any;
constructor() {
this.emitter = new EventEmitter();
}
emit(name, data?) {
this.emitter.emit(name, data);
}
2016-03-25 09:52:28 -05:00
on(name, handler, scope?) {
this.emitter.on(name, handler);
2016-03-25 09:52:28 -05:00
if (scope) {
2016-04-26 05:39:24 -05:00
scope.$on('$destroy', () => {
this.emitter.off(name, handler);
});
}
}
off(name, handler) {
this.emitter.off(name, handler);
}
}