Timo Hocker
7ad999878a
All checks were successful
continuous-integration/drone/push Build is passing
65 lines
1.7 KiB
Markdown
65 lines
1.7 KiB
Markdown
# @sapphirecode/console-app
|
|
|
|
version: 2.1.x
|
|
|
|
read parameters from env, config files, console args or interactively
|
|
|
|
## Installation
|
|
|
|
npm:
|
|
|
|
> npm i --save @sapphirecode/console-app
|
|
|
|
yarn:
|
|
|
|
> yarn add @sapphirecode/console-app
|
|
|
|
## Usage
|
|
|
|
```js
|
|
const {
|
|
ArrayOption, // arrays made out of numbers, strings and booleans
|
|
BooleanOption,
|
|
FileOption, // paths that exist and are a file
|
|
FolderOption, // paths that exist and are a folder
|
|
NumberOption, // integer and float values
|
|
IntegerOption, // only integer values
|
|
PathOption, // paths that exist in the file system
|
|
StringOption,
|
|
} = require('@sapphirecode/console-app');
|
|
|
|
const input = await new BooleanOption({
|
|
name: 'foo', // option name used in configs and console arguments
|
|
|
|
// optional settings:
|
|
default: false, // default value
|
|
sources: {
|
|
configs: [], // config files to read from. none by default
|
|
interactive: true, // use interactive prompts
|
|
console: true // read from console arguments
|
|
// environment is always on if the 'env' option below is specified
|
|
},
|
|
alias: 'f', // shorthand console argument name
|
|
env: 'foo_env', // name of the environment variable to read from
|
|
message: 'input foo', // message to display in interactive prompt
|
|
error: 'failed to read foo', // message to display when input was invalid
|
|
error_callback: (opt, val, err)=>{...}, // function to call when an option value could not be read
|
|
exit_on_interrupt: true, // exit program when user cancels the interactive prompt
|
|
}).parse();
|
|
```
|
|
|
|
config files can import other config files with #include. example:
|
|
|
|
```json
|
|
#include base.json
|
|
{
|
|
"foo": "bar"
|
|
}
|
|
```
|
|
|
|
config files are parsed using [hjson](https://github.com/hjson/hjson-js)
|
|
|
|
## License
|
|
|
|
MIT © Timo Hocker <timo@scode.ovh>
|