inquirer-file-tree-selection-prompt
Version:
inquerer file tree selection prompt
98 lines (97 loc) • 2.85 kB
TypeScript
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;