71 lines
1.7 KiB
Markdown
71 lines
1.7 KiB
Markdown
# @sapphirecode/console-app
|
|
|
|
version: 1.3.x
|
|
|
|
read parameters from env, console args or interactively
|
|
|
|
## Installation
|
|
|
|
npm:
|
|
|
|
> npm i --save @sapphirecode/console-app
|
|
|
|
yarn:
|
|
|
|
> yarn add @sapphirecode/console-app
|
|
|
|
## Usage
|
|
|
|
```js
|
|
const {InteractiveOptions} = require('@sapphirecode/console-app');
|
|
|
|
const reader = new InteractiveOptions([
|
|
{
|
|
name: 'foo', // name of the option
|
|
type: 'boolean', // data type
|
|
required: true, // require option to be specified (optional)
|
|
default: false, // default value (optional)
|
|
alias: 'f', // shorthand alias in the console (optional)
|
|
env: 'fooenv', // environment variable to read from (optional)
|
|
description: 'the switch foo', // description in the help page (optional)
|
|
message: 'should foo be true?', // message when asking interactively (optional)
|
|
preset: [] // preset choices for string and path types (optional)
|
|
},
|
|
]);
|
|
|
|
const result = await reader.parse();
|
|
console.log(result.foo);
|
|
```
|
|
|
|
available data types:
|
|
|
|
- string
|
|
- number
|
|
- boolean
|
|
- path: expects a path that exists
|
|
- file: expects a path that exists and is a file
|
|
- folder: expects a path that exists and is a folder
|
|
- array: arrays made out of strings, numbers and booleans
|
|
|
|
the console reader automatically adds the options --help (-h) and --quiet (-q)
|
|
|
|
- help: shows the yargs help screen
|
|
- quiet: prevents interactive queries and throws an error when not all required
|
|
parameters are specified
|
|
|
|
the reader can also be constructed with additional options that specify which
|
|
sources should be used. It reads from all, except config files by default
|
|
|
|
```js
|
|
const reader = new InteractiveOptions([], {
|
|
args: true,
|
|
env: true,
|
|
interactive: true,
|
|
configs: ['json files to search for options']
|
|
});
|
|
```
|
|
|
|
## License
|
|
|
|
MIT © Timo Hocker <timo@scode.ovh>
|