@revrag-ai/embed-react-native
Version:
A powerful React Native library for integrating AI-powered voice agents into mobile applications. Features real-time voice communication, intelligent speech processing, customizable UI components, and comprehensive event handling for building conversation
43 lines (42 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
class TypedEventEmitter {
listeners = new Map();
on(event, listener) {
if (!this.listeners.has(event)) {
this.listeners.set(event, []);
}
this.listeners.get(event).push(listener);
return this;
}
emit(event, payload) {
const eventListeners = this.listeners.get(event);
if (eventListeners) {
eventListeners.forEach(listener => listener(payload));
return true;
}
return false;
}
once(event, listener) {
const onceWrapper = payload => {
listener(payload);
this.off(event, onceWrapper);
};
return this.on(event, onceWrapper);
}
off(event, listener) {
const eventListeners = this.listeners.get(event);
if (eventListeners) {
const index = eventListeners.indexOf(listener);
if (index > -1) {
eventListeners.splice(index, 1);
}
}
return this;
}
}
var _default = exports.default = TypedEventEmitter;
//# sourceMappingURL=eventEmitter.js.map