@squiz/dxp
Version:
The common dxp library for cli commands
122 lines (121 loc) • 2.78 kB
TypeScript
/*!
* @license
* Copyright Squiz Australia Pty Ltd. All Rights Reserved.
*/
import { Observable } from 'rxjs';
import { CommandContext } from '../Context/Context.dto';
/**
* TODO:
* @export
*/
export declare type Command = Commandable & CommandExtras;
/**
* TODO:
* @export
* @interface CommandExtras
*/
export interface CommandExtras {
/**
* TODO:
* @type {string}
* @memberof CommandExtras
*/
commandFullName: string;
/**
* TODO:
* @type {string}
* @memberof CommandExtras
*/
commandName: string;
/**
* TODO:
* @type {boolean}
* @memberof CommandExtras
*/
isAlias: boolean;
/**
* TODO:
* @type {string}
* @memberof CommandExtras
*/
pluginName: string;
/**
* TODO:
* @type {string}
* @memberof CommandExtras
*/
pluginVersion: string;
}
/**
* TODO:
* @export
*/
export declare type CommandParent = (Command & {
parent: CommandParent;
}) | null;
/**
* TODO:
* @export
*/
export declare type Commands = Record<string, Command | CommandsNested>;
/**
* TODO:
* @export
*/
export declare type CommandsNested = {
[subcommandName: string]: Command | CommandsNested;
};
/**
* TODO:
* @export
*/
export declare type CommandsRaw = Record<string, CommandsRawNested | string>;
/**
* TODO:
* @export
*/
export declare type CommandsRawNested = {
[subcommandName: string]: CommandsRawNested | string;
};
/**
* TODO:
* @export
* @interface Commandable
*/
export interface Commandable {
/**
* TODO:
* @param {CommandContext} context TODO:
* @returns {Array<string>} TODO:
* @memberof Commandable
*/
aliases(context: CommandContext): Array<string>;
/**
* TODO:
* @param {CommandContext} context TODO:
* @returns {Array<string>} TODO:
* @memberof Commandable
*/
examples(context: CommandContext): Array<string>;
/**
* TODO:
* @param {CommandContext} context TODO:
* @returns {(Observable<unknown> | Promise<unknown> | unknown)} TODO:
* @memberof Commandable
*/
execute(context: CommandContext): Observable<unknown> | Promise<unknown> | unknown;
/**
* TODO:
* @param {CommandContext} context TODO:
* @returns {(Observable<string> | Promise<string> | string)} TODO:
* @memberof Commandable
*/
help(context: CommandContext): Observable<string> | Promise<string> | string;
/**
* TODO:
* @param {CommandContext} context TODO:
* @returns {Array<string>} TODO:
* @memberof Commandable
*/
usages(context: CommandContext): Array<string>;
}