@tsed/cli-core
Version:
Build your CLI with TypeScript and Decorators
28 lines (27 loc) • 936 B
JavaScript
import { __decorate } from "tslib";
import { Injectable, injector } from "@tsed/di";
let CliHooks = class CliHooks {
async emit(hookName, cmd, ...args) {
const inj = injector();
const providers = inj.getProviders();
let results = [];
for (const provider of providers) {
if (provider.useClass) {
const instance = inj.get(provider.token);
if (provider.store.has(hookName)) {
const props = provider.store.get(hookName)[cmd];
if (props) {
for (const propertyKey of props) {
results = results.concat(await instance[propertyKey](...args));
}
}
}
}
}
return results.filter((o) => o !== undefined);
}
};
CliHooks = __decorate([
Injectable()
], CliHooks);
export { CliHooks };