@grandlinex/easy-cli
Version:
Cli lib to perform common tasks
39 lines (38 loc) • 1.27 kB
TypeScript
import { CoreLogChannel, CoreLogger } from '@grandlinex/core';
import { ShellCommand } from './class/ShellComand.js';
import { IHandler } from './lib/types.js';
import InteractionArgs from './class/InteractionArgs.js';
export default abstract class CommandHandler<X = any> extends CoreLogChannel implements IHandler<X> {
private statics;
private baseCmd;
private cmdMap;
readonly logger: CoreLogger;
private readonly dev;
private readonly pageSize?;
private readonly defaultInteractive;
private readonly cmdName;
private readonly data;
protected constructor(cnf?: {
isDev?: boolean;
defaultInteractive?: boolean;
logger?: CoreLogger;
cmdName?: string;
pageSize?: number;
data?: X | null;
});
setStatic(key: string, value: any): void;
getStatic(key: string): string;
getCmdName(): string;
protected addCmd(fc: (props: {
logger: CoreLogger;
handler: IHandler;
}) => ShellCommand[]): void;
private addBaseCmd;
getCmds(full?: boolean): ShellCommand[];
run(iArgs?: InteractionArgs): Promise<void>;
onStart(): Promise<void>;
onEnd(): void;
getData(): X | null;
isDev(): boolean;
getPageSize(): number | undefined;
}