enc-webrtc
Version:
An utility which helps using web rtc.
28 lines (23 loc) • 822 B
text/typescript
export class EEventT<T> {
private listeners: ((arg: T) => void)[] = [];
public addEventListener = (listener: (arg: T) => void) => {
// validation
if (!listener || this.listeners.indexOf(listener) >= 0) {
throw "listener already added";
}
this.listeners.push(listener);
}
public dispatchEvent = (arg: T) => {
for (let i = 0; i < this.listeners.length; i++) {
const event = this.listeners[i];
event(arg);
}
}
public removeEventListener = (listener: (arg: T) => void) => {
// validation
if (!listener || this.listeners.indexOf(listener) < 0) {
throw "listener not found";
}
this.listeners.splice(this.listeners.indexOf(listener), 1);
}
}