UNPKG

@microsoft/teams.common

Version:

<p> <a href="https://www.npmjs.com/package/@microsoft/teams.common" target="_blank"> <img src="https://img.shields.io/npm/v/@microsoft/teams.common/latest" /> </a> <a href="https://www.npmjs.com/package/@microsoft/teams.common?activeTa

36 lines (35 loc) 874 B
class EventEmitter { index = -1; subscriptions = /* @__PURE__ */ new Map(); on(event, handler) { const id = ++this.index; const subs = this.subscriptions.get(event) || []; subs.push({ id, handler }); this.subscriptions.set(event, subs); return id; } once(event, handler) { const id = this.on(event, (value) => { this.off(id); handler(value); }); return id; } off(id) { for (const [_, subs] of this.subscriptions.entries()) { const i = subs.findIndex((s) => s.id === id); if (i === -1) continue; subs.splice(i, 1); return; } } emit(event, value) { const subs = this.subscriptions.get(event) || []; for (const sub of subs) { sub.handler(value); } } } export { EventEmitter }; //# sourceMappingURL=event-emitter.mjs.map //# sourceMappingURL=event-emitter.mjs.map