21 lines
690 B
JavaScript
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
|