boardgame-core/src/utils/command/command-runner.ts

18 lines
642 B
TypeScript
Raw Normal View History

2026-04-02 08:58:11 +08:00
import type { Command, CommandSchema } from './types.js';
export type CommandRunnerContext<TContext> = {
context: TContext;
run: (input: string) => Promise<{ success: true; result: unknown } | { success: false; error: string }>;
runParsed: (command: Command) => Promise<{ success: true; result: unknown } | { success: false; error: string }>;
};
export type CommandRunnerHandler<TContext, TResult> = (
this: CommandRunnerContext<TContext>,
command: Command
) => Promise<TResult>;
export type CommandRunner<TContext, TResult = unknown> = {
schema: CommandSchema;
run: CommandRunnerHandler<TContext, TResult>;
};