A filesystem prompt selector plugin for Inquirer.js.
npm install --save inquirer-fs-selector- 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
- Press / key to enter search mode
- Press - key to go up (back) a directory
- Press . key to select the current directory
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.
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 directorydefaultthe name of the item (string) where the pointer will be initially positioned (default:'.')
An object with the following shape
{
isDirectory: Boolean
isFile: Boolean
path: String // path to selected file/directory
}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.
| key | default | description |
|---|---|---|
displayFiles |
true |
Set this to false if you need to hide files |
displayHidden |
false |
Set this to true if you to display hidden folders (and displayFiles === true) |
canSelectFile |
true (if displayFiles === true) |
Set this to false to 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 return true to prompt the item on the list |
TIP: To disable prompt icons, make icons === false.