UNPKG

@grandlinex/easy-cli

Version:

Cli lib to perform common tasks

39 lines (38 loc) 1.27 kB
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; }