ts-simple-ast
Version:
TypeScript compiler wrapper for AST navigation and code generation.
42 lines (40 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Event container for event subscriptions.
*/
class EventContainer {
constructor() {
this.subscriptions = [];
}
/**
* Subscribe to an event being fired.
* @param subscription - Subscription.
*/
subscribe(subscription) {
const index = this.getIndex(subscription);
if (index === -1)
this.subscriptions.push(subscription);
}
/**
* Unsubscribe to an event being fired.
* @param subscription - Subscription.
*/
unsubscribe(subscription) {
const index = this.getIndex(subscription);
if (index >= 0)
this.subscriptions.splice(index, 1);
}
/**
* Fire an event.
*/
fire(arg) {
for (const subscription of this.subscriptions)
subscription(arg);
}
getIndex(subscription) {
return this.subscriptions.indexOf(subscription);
}
}
exports.EventContainer = EventContainer;
//# sourceMappingURL=EventContainer.js.map