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:
basePath
the relative path from your current working directorydefault
the 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
.