/* command-line-args parses the command line but does not validate what was collected. This example demonstrates how the values collected can be validated. */ 'use strict' const commandLineArgs = require('../') const fs = require('fs') const optionDefinitions = [ { name: 'help', alias: 'h', type: Boolean }, { name: 'files', type: String, multiple: true, defaultOption: true }, { name: 'log-level', type: String } ] const options = commandLineArgs(optionDefinitions) const valid = options.help || ( /* all supplied files should exist and --log-level should be one from the list */ options.files && options.files.length && options.files.every(fs.existsSync) && [ 'info', 'warn', 'error', undefined ].includes(options['log-level']) ) console.log('Your options are', valid ? 'valid' : 'invalid') console.log(options) /* Example output: $ node example/validate.js package.json README.md Your options are valid { files: [ 'package.json', 'README.md' ] } */