70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # @sapphirecode/console-app
 | |
| 
 | |
| version: 1.2.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 by default
 | |
| 
 | |
| ```js
 | |
| const reader = new InteractiveOptions([], {
 | |
|   args: true,
 | |
|   env: true,
 | |
|   interactive: true,
 | |
| });
 | |
| ```
 | |
| 
 | |
| ## License
 | |
| 
 | |
| MIT © Timo Hocker <timo@scode.ovh>
 |