index.d.ts 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import Base from 'inquirer/lib/prompts/base';
  2. import { Question, Transformer } from 'inquirer';
  3. import Paginator from 'inquirer/lib/utils/paginator';
  4. import { Node } from './types';
  5. declare type FileTreeSelectionPromptOptions<T = any> = Pick<Question<T>, 'type' | 'name' | 'message' | 'filter' | 'validate' | 'default'> & {
  6. transformer?: Transformer<T>;
  7. /**
  8. * count of items show in terminal. default: 10
  9. */
  10. pageSize?: number;
  11. /**
  12. * if true, will only show directory. Default: false
  13. */
  14. onlyShowDir?: boolean;
  15. /**
  16. * if true, will only show valid files (if validate is provided). Default: false.
  17. */
  18. onlyShowValid?: boolean;
  19. /**
  20. * if true, will hide children of valid directories (if validate is provided). Default: false.
  21. */
  22. hideChildrenOfValid?: boolean;
  23. /**
  24. * if true, will enable to select multiple files. Default: false.
  25. */
  26. multiple?: boolean;
  27. /**
  28. * Default to be current process.cwd()
  29. */
  30. root?: string;
  31. /**
  32. * Hide root, Default: false
  33. */
  34. hideRoot?: boolean;
  35. selectedList?: string[];
  36. /**
  37. * show `..` in inside root dir, and you the user can press space on it to go upper directory. Default: false
  38. */
  39. enableGoUpperDirectory?: boolean;
  40. };
  41. declare module 'inquirer' {
  42. interface QuestionMap<T> {
  43. fileTreeSelection: Omit<FileTreeSelectionPromptOptions<T>, 'type'> & {
  44. type: 'file-tree-selection';
  45. };
  46. }
  47. }
  48. /**
  49. * type: string
  50. * onlyShowDir: boolean (default: false)
  51. */
  52. declare class FileTreeSelectionPrompt extends Base<FileTreeSelectionPromptOptions & {
  53. states: any;
  54. }> {
  55. rootNode: Node;
  56. firstRender: boolean;
  57. shownList: string[] | Record<string, any>;
  58. selectedList: string[] | Record<string, any>;
  59. paginator: Paginator;
  60. done: (...args: any[]) => void;
  61. active: Node;
  62. get fileTree(): Node | {
  63. children: Node[];
  64. };
  65. constructor(questions: any, rl: any, answers: any);
  66. /**
  67. * Start the Inquiry session
  68. * @param {Function} cb Callback when prompt is done
  69. * @return {this}
  70. */
  71. _run(cb: any): Promise<this>;
  72. renderFileTree(root?: Node | {
  73. children: Node[];
  74. }, indent?: number): string;
  75. prepareChildren(node: Node): any;
  76. /**
  77. * Render the prompt to screen
  78. * @return {FileTreeSelectionPrompt} self
  79. */
  80. render(error?: any): void;
  81. onEnd(state: any): void;
  82. onError(state: any): void;
  83. /**
  84. * When user press `enter` key
  85. */
  86. onSubmit(state: any): void;
  87. moveActive(distance?: number): void;
  88. /**
  89. * When user press a key
  90. */
  91. onUpKey(): void;
  92. onDownKey(): void;
  93. onLeftKey(): void;
  94. onRigthKey(): void;
  95. onSpaceKey(triggerByTab?: boolean): Promise<void>;
  96. }
  97. export default FileTreeSelectionPrompt;