21 lines
690 B
JavaScript

/**
* Eventlet supports a minimal typed event pattern. It is designed to be used as either a standalone object
* which emits events, or as a member property of a class that emits events. It should not be used as a superclass
* for a class which will emit events.
*/
export class Eventlet {
listeners = new Set();
emit = (...args) => {
// Set is specified to iterate in insertion order
for (const listener of this.listeners) {
listener(...args);
}
};
add = (listener) => {
this.listeners.add(listener);
};
remove = (listener) => {
this.listeners.delete(listener);
};
}
//# sourceMappingURL=eventlet.js.map