UNPKG

@visulima/cerebro

Version:

A delightful toolkit for building cross-runtime CLIs for Node.js, Deno, and Bun.

38 lines (37 loc) 2.28 kB
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>;