1.5.0 • Published 4 years ago
inquirer-fs-selector v1.5.0
inquirer-fs-selector
A filesystem prompt selector plugin for Inquirer.js.
Installation
npm install --save inquirer-fs-selectorFeatures
- Support for symlinked files
- Vim style navigation
- Search for file with / key
- Customize (or disable) file and directory icons
- Select file (optionally) or directory
- Define the initial pointer position
Key Maps
- Press / key to enter search mode
- Press - key to go up (back) a directory
- Press . key to select the current directory
Usage
This prompt is anonymous, meaning you can register this prompt with the type name you please:
inquirer.registerPrompt('fs-selector', require('inquirer-fs-selector'));
inquirer.prompt({
  type: 'fs-selector',
  // ...
})Change fs-selector to whatever you might prefer.
Parameters
Note: allowed options written inside square brackets (
[]) are optional. Others are required.
Takes type, name, message, basePath[, default, options ] properties.
See inquirer.js README for meaning of all except basePath and default.
Which are:
- basePaththe relative path from your current working directory
- defaultthe name of the item (string) where the pointer will be initially positioned (default:- '.')
Return
An object with the following shape
{
  isDirectory: Boolean
  isFile: Boolean
  path: String // path to selected file/directory
}Example
const inquirer = require('inquirer')
inquirer.registerPrompt('fs', require('inquirer-fs-selector'))
// ...
inquirer.prompt([{
  type: 'directory',
  name: 'fs',
  message: 'Choose a file or directory',
  basePath: './',
  options: {
    displayHidden: true,
    displayFiles: true,
    canSelectFile: true,
    icons: {
      currentDir: '\u{1F4C2}',
      // dir: '\u{1F4C1}',
      // file: '\u{1F4C4}',
    },
    // icons: false, // Do not display icons
    shouldDisplayItem: (isDir, isFile, path) => true, // display file/directory
  }
}]).then((answers) => {
  console.log(answers.fs)
})See also example.js for a working example.
Options
| key | default | description | 
|---|---|---|
| displayFiles | true | Set this to falseif you need to hide files | 
| displayHidden | false | Set this to trueif you to display hidden folders (anddisplayFiles === true) | 
| canSelectFile | true(ifdisplayFiles === true) | Set this to falseto disable files selection | 
| icons.currentDir | '\u{1F4C2}'(📂) | Set an icon for current directory | 
| icons.dir | '\u{1F4C1}'(📁) | Set an icon for other directories | 
| icons.file | '\u{1F4C4}'(📄) | Set an icon for files | 
| shouldDisplayItem | undefined(same as passing() => true) | A callback function with the following signature: (isDirectory: boolean, isFile: boolean, fullPath: string) => boolean. Should returntrueto prompt the item on the list | 
TIP: To disable prompt icons, make icons === false.