-
Notifications
You must be signed in to change notification settings - Fork 58
Expand file tree
/
Copy pathintent-process.ts
More file actions
38 lines (32 loc) · 1.18 KB
/
intent-process.ts
File metadata and controls
38 lines (32 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import { ConsoleLogger } from '../console/logger.js';
import { CommandMeta } from '../console/metadata.js';
import { CommandRunner } from '../console/runner.js';
import { Actuator } from './actuator.js';
import { ContainerFactory } from './container-factory.js';
import yargs from 'yargs-parser';
export class IntentConsoleProcess {
constructor(private readonly actuator: Actuator) {}
async handle(args: string[]): Promise<void> {
const container = await this.actuator.importContainer();
const app = await ContainerFactory.createStandalone(container);
const argv = yargs(args);
const commandName = argv._[0];
if (typeof commandName != 'string') {
ConsoleLogger.error(' PLEASE ADD A COMMAND ');
return process.exit();
}
const command = CommandMeta.getCommand(commandName);
if (!command || !command.target) {
ConsoleLogger.error(` ${commandName} : command not found `);
return process.exit();
}
return new Promise(async (resolve, reject) => {
try {
await CommandRunner.handle(command, argv, app);
} catch (error) {
console.error(`Intent Process Error:`, error);
reject(error);
}
});
}
}