@anam-ai/js-sdk
Version:
Client side JavaScript SDK for Anam AI
29 lines • 873 B
JavaScript
import { sendErrorMetric } from '../lib/ClientError';
import { AnamEvent } from '../types';
export class PublicEventEmitter {
constructor() {
this.listeners = {};
}
addListener(event, callback) {
if (!this.listeners[event]) {
this.listeners[event] = new Set();
}
this.listeners[event].add(callback);
}
removeListener(event, callback) {
if (!this.listeners[event])
return;
this.listeners[event].delete(callback);
}
emit(event, ...args) {
if (!this.listeners[event])
return;
if (event === AnamEvent.CONNECTION_CLOSED) {
sendErrorMetric('client_connection_closed', args[0]);
}
this.listeners[event].forEach((callback) => {
callback(...args);
});
}
}
//# sourceMappingURL=PublicEventEmitter.js.map