diff --git a/src/utils/command/command-registry.ts b/src/utils/command/command-registry.ts index dc2e060..e6741bf 100644 --- a/src/utils/command/command-registry.ts +++ b/src/utils/command/command-registry.ts @@ -1,5 +1,5 @@ import type { Command, CommandSchema } from './types.js'; -import type { CommandRunner, CommandRunnerContext, PromptEvent } from './command-runner.js'; +import type {CommandResult, CommandRunner, CommandRunnerContext, PromptEvent} from './command-runner.js'; import { parseCommand } from './command-parse.js'; import { applyCommandSchema } from './command-validate.js'; import { parseCommandSchema } from './schema-parse.js'; @@ -92,7 +92,7 @@ export function createCommandRunnerContext( const runnerCtx: CommandRunnerContextExport = { registry, context, - run: (input: string) => runCommandWithContext(runnerCtx, input), + run: (input: string) => runCommandWithContext(runnerCtx, input) as Promise>, runParsed: (command: Command) => runCommandParsedWithContext(runnerCtx, command), prompt, on, @@ -114,7 +114,7 @@ async function executeWithRunnerContext( runnerCtx: CommandRunnerContextExport, runner: CommandRunner, command: Command -): Promise<{ success: true; result: unknown } | { success: false; error: string }> { +): Promise { try { const result = await runner.run.call(runnerCtx, command); return { success: true, result }; @@ -128,7 +128,7 @@ export async function runCommand( registry: CommandRegistry, context: TContext, input: string -): Promise<{ success: true; result: unknown } | { success: false; error: string }> { +): Promise { const runnerCtx = createCommandRunnerContext(registry, context); return await runCommandWithContext(runnerCtx, input); } @@ -145,7 +145,7 @@ export async function runCommandParsed( registry: CommandRegistry, context: TContext, command: Command -): Promise<{ success: true; result: unknown } | { success: false; error: string }> { +): Promise { const runnerCtx = createCommandRunnerContext(registry, context); return await runCommandParsedWithContext(runnerCtx, command); } @@ -153,7 +153,7 @@ export async function runCommandParsed( async function runCommandParsedWithContext( runnerCtx: CommandRunnerContextExport, command: Command -): Promise<{ success: true; result: unknown } | { success: false; error: string }> { +): Promise { const runner = runnerCtx.registry.get(command.name); if (!runner) { return { success: false, error: `Unknown command: ${command.name}` }; diff --git a/src/utils/command/command-runner.ts b/src/utils/command/command-runner.ts index 17644f0..41a3fc7 100644 --- a/src/utils/command/command-runner.ts +++ b/src/utils/command/command-runner.ts @@ -10,9 +10,17 @@ export type CommandRunnerEvents = { prompt: PromptEvent; }; +export type CommandResult = { + success: true; + result: T; +} | { + success: false; + error: string; +} + export type CommandRunnerContext = { context: TContext; - run: (input: string) => Promise<{ success: true; result: unknown } | { success: false; error: string }>; + run: (input: string) => Promise>; runParsed: (command: Command) => Promise<{ success: true; result: unknown } | { success: false; error: string }>; prompt: (schema: CommandSchema | string) => Promise; on: (event: T, listener: (e: CommandRunnerEvents[T]) => void) => void;