@2fd/command
Version:
Modular command line tool
53 lines (52 loc) • 2.43 kB
TypeScript
import { InputInterface, OutputInterface, FlagInterface } from '../interfaces';
export declare class NullFlag implements FlagInterface<void> {
name: string;
description: string;
list: any[];
after(): void;
before(): void;
parse(): void;
}
export declare class FlagConstructor {
name: string;
description: string;
list: Array<string>;
constructor(name?: string, list?: Array<string>, description?: string);
}
export declare class BooleanFlag<F> extends FlagConstructor implements FlagInterface<F> {
after(input: InputInterface<F, any>, output: OutputInterface): void;
before(input: InputInterface<F, any>, output: OutputInterface): void;
parse(flag: string, input: InputInterface<F, any>, output: OutputInterface): void;
}
export declare type HelpFlagInput = {
help?: boolean;
};
export declare class HelpFlag extends BooleanFlag<HelpFlagInput> implements FlagInterface<HelpFlagInput> {
constructor();
}
export declare class RequireFlag<F> implements FlagInterface<F> {
flag: FlagInterface<F>;
constructor(flag: FlagInterface<F>);
readonly name: string;
readonly description: string;
readonly list: string[];
after(input: InputInterface<any, any>, output: OutputInterface): void;
before(input: InputInterface<any, any>, output: OutputInterface): void;
parse(flag: string, input: InputInterface<any, any>, output: OutputInterface): void;
}
export declare class ValueFlag<T> extends FlagConstructor implements FlagInterface<any> {
parser: (value: string) => T;
def: T;
constructor(name: string, list: Array<string>, description: string, parser?: (value: string) => T, def?: T);
after(input: InputInterface<any, any>, output: OutputInterface): void;
before(input: InputInterface<any, any>, output: OutputInterface): void;
parse(falg: string, input: InputInterface<any, any>, output: OutputInterface): void;
}
export declare class ListValueFlag<T> extends FlagConstructor implements FlagInterface<any> {
parser: (value: string) => T;
def: Array<T>;
constructor(name: string, list: Array<string>, description: string, parser?: (value: string) => T, def?: Array<T>);
after(input: InputInterface<any, any>, output: OutputInterface): void;
before(input: InputInterface<any, any>, output: OutputInterface): void;
parse(flag: string, input: InputInterface<any, any>, output: OutputInterface): void;
}