INNER CODE UNIT · TypeScript
EventEmitter
mongodb-js/mongodb-mcp-server · packages/browser-tests/polyfills/events/index.ts:4
export class EventEmitter {
private events: Map<string | symbol, Array<(...args: any[]) => void>> = new Map();
on(event: string | symbol, listener: (...args: any[]) => void): this {
if (!this.events.has(event)) {
this.events.set(event, []);
}
this.events.get(event)!.push(listener);
return this;
}
once(event: string | symbol, listener: (...args: any[]) => void): this {
const onceWrapper = (...args: any[]) => {
this.off(event, onceWrapper);
listener(...args);
};
return this.on(event, onceWrapper);
}