@backtrace/javascript-cli
Version:
Backtrace CLI for working with Javascript files.
30 lines (29 loc) • 1.34 kB
TypeScript
import { Result } from '@backtrace/sourcemap-tools';
import { Section } from 'command-line-usage';
import { CliLogger } from '../logger';
import { CommandError } from '../models/CommandError';
import { ExtendedOptionDefinition } from '../models/OptionDefinition';
export type CommandFunction<T> = (context: CommandContext<T>) => Result<number | unknown, string> | Promise<Result<number | unknown, string>>;
export interface CommandOptions {
readonly _unknown?: string[];
}
export interface CommandContext<T> {
readonly opts: Partial<T> & CommandOptions;
readonly logger: CliLogger;
getHelpMessage(): string;
}
export declare class Command<T extends object = object> {
readonly definition: ExtendedOptionDefinition;
readonly subcommands: Command[];
readonly options: ExtendedOptionDefinition[];
readonly helpSections: Section[];
private _execute?;
constructor(definition: ExtendedOptionDefinition);
subcommand(command: Command): this;
option<N extends keyof T & string>(option: ExtendedOptionDefinition<N>): this;
help(...sections: Section[]): this;
execute(fn: Command<T>['_execute']): this;
run(argv: string[], stack?: Command[]): Promise<Result<number, CommandError>>;
static getHelpMessage(command: Command, stack?: Command[]): string;
private safeCommandLineArgs;
}