magically-sdk
Version:
Official SDK for Magically - Build mobile apps with AI
36 lines (35 loc) • 953 B
JavaScript
;
/**
* Simple event emitter for SDK-Provider communication
* Works on mobile, doesn't exist on edge
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.eventEmitter = void 0;
class EventEmitter {
constructor() {
this.events = new Map();
}
on(event, handler) {
if (!this.events.has(event)) {
this.events.set(event, new Set());
}
this.events.get(event).add(handler);
}
off(event, handler) {
this.events.get(event)?.delete(handler);
}
emit(event, data) {
this.events.get(event)?.forEach(handler => handler(data));
}
once(event) {
return new Promise((resolve) => {
const handler = (data) => {
this.off(event, handler);
resolve(data);
};
this.on(event, handler);
});
}
}
// Singleton instance
exports.eventEmitter = new EventEmitter();