UNPKG

@squiz/dxp

Version:

The common dxp library for cli commands

122 lines (121 loc) 2.78 kB
/*! * @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>; }