mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
36 lines
597 B
TypeScript
36 lines
597 B
TypeScript
///<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);
|
|
}
|
|
|
|
on(name, handler, scope?) {
|
|
this.emitter.on(name, handler);
|
|
|
|
if (scope) {
|
|
scope.$on('$destroy', () => {
|
|
this.emitter.off(name, handler);
|
|
});
|
|
}
|
|
}
|
|
|
|
off(name, handler) {
|
|
this.emitter.off(name, handler);
|
|
}
|
|
}
|