0.3.2 • Published 11 months ago

@eliyya/inquirer-fs-selector v0.3.2

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

license node-current version unpacked-size downloads

preview

Installation

npm install inquirer-file-selector

Usage

import fileSelector from 'inquirer-file-selector'

const filePath = await fileSelector({
  message: 'Select a file:',
  ...
})

Options

OptionTypeRequiredDescription
messagestringThe message to display in the prompt.
dirboolenaAllow select dir.
pathstringThe path to the directory where it will be started. Default: process.cwd()
pageSizenumberThe maximum number of items to display in the list. Default: 10
match(file: Item) => booleanA function to filter the files. If not provided, all files will be included.
hideNonMatchbooleanIf true, the list will be filtered to show only files that match the match function. Default: false
disabledLabelstringThe label to display when a file is disabled. Default: (not allowed)
allowCancelbooleanIf true, the prompt will allow the user to cancel the selection. Default: false
cancelTextstringThe message to display when the user cancels the selection. Default: Canceled.
emptyTextstringThe message that will be displayed when the directory is empty. Default: Directory is empty.
themeSee ThemingThe theme to use for the file selector.
canceledLabelstringDeprecated: Use cancelText instead. Will be removed in the next major version.
noFilesFoundstringDeprecated: Use emptyText instead. Will be removed in the next major version.

Theming

You can theme a prompt by passing a theme object option. The theme object only need to includes the keys you wish to modify, we'll fallback on the defaults for the rest.

type FileSelectorTheme = {
  icon: {
    /**
     * The prefix to use for the line.
     * @default isLast => isLast ? └── : ├──
     */
    linePrefix: (isLast: boolean) => string
  }
  style: {
    /**
     * The style to use for the disabled items.
     * @default chalk.dim
     */
    disabled: (text: string) => string
    /**
     * The style to use for the active item.
     * @default chalk.cyan
     */
    active: (text: string) => string
    /**
     * The style to use for the cancel text.
     * @default chalk.red
     */
    cancelText: (text: string) => string
    /**
     * Alias for `emptyText`.
     * @deprecated Use `emptyText` instead. Will be removed in the next major version.
     */
    noFilesFound?: (text: string) => string
    /**
     * The style to use for the empty text.
     * @default chalk.red
     */
    emptyText: (text: string) => string
    /**
     * The style to use for items of type directory.
     * @default chalk.yellow
     */
    directory: (text: string) => string
    /**
     * The style to use for items of type file.
     * @default chalk.white
     */
    file: (text: string) => string
    /**
     * The style to use for the current directory header.
     * @default chalk.magenta
     */
    currentDir: (text: string) => string
    /**
     * The style to use for the key bindings help.
     * @default chalk.white
     */
    help: (text: string) => string
    /**
     * The style to use for the keys in the key bindings help.
     * @default chalk.cyan
     */
    key: (text: string) => string
  }
}

Examples

For examples look in the examples/ directory. You can execute the examples using node.

cd examples/
node <example-name>.js

!NOTE Before running the examples, make sure you have installed the dependencies with npm install and compiled the project with npm run build.

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am "feat: my new feature"
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

!NOTE The commit message should follow the Conventional Commits specification.

Copyright & License

© 2024 Brian Fernandez

This project is licensed under the MIT license. See the file LICENSE for details.

0.3.2

11 months ago