UNPKG

inquirer-file-tree-selection-prompt

Version:
98 lines (97 loc) 2.85 kB
import Base from 'inquirer/lib/prompts/base.js'; import { Question, Transformer } from 'inquirer'; import Paginator from 'inquirer/lib/utils/paginator.js'; import { Node } from './types.js'; declare type FileTreeSelectionPromptOptions<T = any> = Pick<Question<T>, 'type' | 'name' | 'message' | 'filter' | 'validate' | 'default'> & { transformer?: Transformer<T>; /** * count of items show in terminal. default: 10 */ pageSize?: number; /** * if true, will only show directory. Default: false */ onlyShowDir?: boolean; /** * if true, will only show valid files (if validate is provided). Default: false. */ onlyShowValid?: boolean; /** * if true, will hide children of valid directories (if validate is provided). Default: false. */ hideChildrenOfValid?: boolean; /** * if true, will enable to select multiple files. Default: false. */ multiple?: boolean; /** * Default to be current process.cwd() */ root?: string; /** * Hide root, Default: false */ hideRoot?: boolean; selectedList?: string[]; /** * show `..` in inside root dir, and you the user can press space on it to go upper directory. Default: false */ enableGoUpperDirectory?: boolean; }; declare module 'inquirer' { interface QuestionMap<T> { fileTreeSelection: Omit<FileTreeSelectionPromptOptions<T>, 'type'> & { type: 'file-tree-selection'; }; } } /** * type: string * onlyShowDir: boolean (default: false) */ declare class FileTreeSelectionPrompt extends Base<FileTreeSelectionPromptOptions & { states: any; }> { rootNode: Node; firstRender: boolean; shownList: string[] | Record<string, any>; selectedList: string[] | Record<string, any>; paginator: Paginator; done: (...args: any[]) => void; active: Node; get fileTree(): Node | { children: Node[]; }; constructor(questions: any, rl: any, answers: any); /** * Start the Inquiry session * @param {Function} cb Callback when prompt is done * @return {this} */ _run(cb: any): Promise<this>; renderFileTree(root?: Node | { children: Node[]; }, indent?: number): string; prepareChildren(node: Node): any; /** * Render the prompt to screen * @return {FileTreeSelectionPrompt} self */ render(error?: any): void; onEnd(state: any): void; onError(state: any): void; /** * When user press `enter` key */ onSubmit(state: any): void; moveActive(distance?: number): void; /** * When user press a key */ onUpKey(): void; onDownKey(): void; onLeftKey(): void; onRigthKey(): void; onSpaceKey(triggerByTab?: boolean): Promise<void>; } export default FileTreeSelectionPrompt;