@visulima/cerebro
Version:
A delightful toolkit for building cross-runtime CLIs for Node.js, Deno, and Bun.
38 lines (37 loc) • 2.28 kB
TypeScript
import type { CommandLineOptions } from "@visulima/command-line-args";
import type { Command as ICommand, OptionDefinition } from "../../types/command.d.ts";
import type { Toolbox as IToolbox } from "../../types/toolbox.d.ts";
import mergeArguments from "../data-processing/merge-arguments.d.ts";
/**
* Prepares the toolbox for command execution.
* @template OD The option definition type.
* @param command The command to prepare toolbox for.
* @param parsedArgs Parsed command-line arguments.
* @param booleanValues Extracted boolean flag values.
* @param extraOptions Additional options to merge into toolbox.
* @returns The prepared toolbox instance.
*/
export declare const prepareToolbox: <OD extends OptionDefinition<unknown>, TLogger extends Console = Console>(command: ICommand<OD, TLogger>, parsedArgs: CommandLineOptions, booleanValues: Record<string, unknown>, extraOptions: Record<string, unknown>) => IToolbox<TLogger>;
/**
* Processes command arguments and options.
* @template OD The option definition type.
* @param command The command to process arguments for.
* @param commandArguments Raw command-line argument strings.
* @param defaultOptions Default option definitions to merge.
* @returns Object containing merged arguments, boolean values, and parsed args.
* @throws {Error} When an argument has both multiple and lazyMultiple options.
*/
export declare const processCommandArgs: <OD extends OptionDefinition<unknown>, TLogger extends Console = Console>(command: ICommand<OD, TLogger>, commandArguments: string[], defaultOptions: OptionDefinition<unknown>[]) => {
arguments_: ReturnType<typeof mergeArguments>;
booleanValues: Record<string, unknown>;
parsedArgs: CommandLineOptions;
};
/**
* Executes a command and returns its result.
* @template OD The option definition type.
* @param command The command to execute.
* @param toolbox The prepared toolbox for command execution.
* @param _commandArgs Parsed command arguments.
* @returns Promise resolving to the command execution result.
*/
export declare const executeCommand: <OD extends OptionDefinition<unknown>, TLogger extends Console = Console>(command: ICommand<OD, TLogger>, toolbox: IToolbox<TLogger>, _commandArgs: CommandLineOptions) => Promise<unknown>;