EZ-Options
Complex Options Objects made easy with input checking and meaningful errors.
Table of contents
Installation
Installing
npm install ez-options
Usage
Importing
Cjs
const Options = require('ez-options');
Es Module
import Options from 'ez-options';
Example
- Basic Example
const _property = true;const _parent = true; const schema = reverse: _property types: 'boolean' default: false separator: _property types: 'string' default: ' ' case: _parent upper: _property types: 'boolean' default: false lower: _property types: 'boolean' default: false ; { // Create options instance with schema thisoptions = schema; // Merge user input options thisoptions; thisfirstName = firstName; thislastName = lastName; } { // Copy options object and merge overrides to the copy const temp = thisoptions; let text = tempreverse ? `` : ``; if tempcaseupper text = text; if tempcaselower text = text; return text; } const john = 'John' 'Smith' case: upper: true ;console; // 'JOHN SMITH'console; // 'SMITH JOHN'console; // 'Smith, John'
- Integration commandLineArgs lib
const schema = server: _parent compress: _property default: true types: 'boolean' cla: name: 'compress' type: Boolean alias: 'c' skip: _property default: false types: 'boolean' cla: name: 'skip-server' type: Boolean alias: 's' react: _parent skip: _property default: false types: 'boolean' cla: name: 'skip-react' type: Boolean alias: 'r' output: _parent directory: _property default: 'clasp' types: 'string' cla: name: 'output-directory' type: String alias: 'o' ;// Create options instance with schemaconst options = schema;// Get the config.json objectconst config = await ;// Extract the cla information into a flat array for commandLineArgs// and an inflate functionconst claDefs inflate = options;// Pass the extracted information to the commandLineArgs lib to get// the command input optionsconst claFlat = ;// Inflate the flat object to the options object formatconst claInflated = ;// Merge the user options into the Options instanceoptions;
Die Hard Mode
Error checking is turned off in dieHard mode to significantly improve performance in production environments.
You may want to enable this when NODE_ENV is set to 'production'.
const isProd = BooleanprocessenvNODE_ENV === 'production';const options = schema dieHard: isProd ;
Issues
If you encounter any issues please report them on the Library's Github.