@intuitionrobotics/thunderstorm
Version:
19 lines • 853 B
JavaScript
import { Dispatcher } from "@intuitionrobotics/ts-common/core/dispatcher";
import {} from "@intuitionrobotics/ts-common/utils/types";
export class ThunderDispatcher extends Dispatcher {
static listenersResolver;
constructor(method) {
super(method);
}
dispatchUI(...p) {
const listeners = ThunderDispatcher.listenersResolver();
// @ts-expect-error TS struggles with this dynamic typing
return listeners.filter(this.filter).map((listener) => listener[this.method](...p));
}
async dispatchUIAsync(...p) {
const filtered = ThunderDispatcher.listenersResolver().filter(this.filter);
// @ts-expect-error TS struggles with this dynamic typing
return Promise.all(filtered.map(async (listener) => listener[this.method](...p)));
}
}
//# sourceMappingURL=thunder-dispatcher.js.map