@blinkk/selective-edit
Version:
Selective structured text editor.
29 lines • 868 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Listeners = void 0;
/**
* Listeners for allowing a creating listeners and trigger callbacks.
*/
class Listeners {
constructor() {
this.listeners = {};
}
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
add(eventName, callback) {
const listeners = this.listenersForEvent(eventName);
listeners.push(callback);
}
listenersForEvent(eventName) {
if (!this.listeners[eventName]) {
this.listeners[eventName] = [];
}
return this.listeners[eventName];
}
trigger(eventName, ...data) {
for (const listener of this.listenersForEvent(eventName)) {
listener(...data);
}
}
}
exports.Listeners = Listeners;
//# sourceMappingURL=listeners.js.map