initial commit (it all starts here...)

This commit is contained in:
M. George Hansen 2020-05-25 22:36:20 -07:00
commit 13cbc07c11
36 changed files with 4550 additions and 0 deletions

34
src/cli/types.ts Normal file
View file

@ -0,0 +1,34 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
/**
* CLI command representing an action that the CLI program supports.
*/
export interface Command {
/**
* Execute the command with the specified arguments.
*
* @param args List of CLI arguments to pass to the command.
*/
execute(args: string[]): Promise<void>;
/**
* Help text for this command.
*/
helpText: string;
}
/**
* Error that commands can issue to indicate incorrect usage along with help
* text to guide the user to correct their mistake.
*/
export class UsageError extends Error {
public readonly helpText: string;
public constructor(message: string, helpText: string) {
super(message);
this.helpText = helpText;
}
}