Sha256: c0a19806fabd2322a5e59c32acbf1b533730c7c63b6f2fa91ed234ac26acdb1d
Contents?: true
Size: 1.28 KB
Versions: 33
Compression:
Stored size: 1.28 KB
Contents
'use strict'; // This example is used in the documentation. // How might I add my own support for --no-foo? // 1. const { parseArgs } = require('node:util'); // from node // 2. const { parseArgs } = require('@pkgjs/parseargs'); // from package const { parseArgs } = require('..'); // in repo const options = { 'color': { type: 'boolean' }, 'no-color': { type: 'boolean' }, 'logfile': { type: 'string' }, 'no-logfile': { type: 'boolean' }, }; const { values, tokens } = parseArgs({ options, tokens: true }); // Reprocess the option tokens and overwrite the returned values. tokens .filter((token) => token.kind === 'option') .forEach((token) => { if (token.name.startsWith('no-')) { // Store foo:false for --no-foo const positiveName = token.name.slice(3); values[positiveName] = false; delete values[token.name]; } else { // Resave value so last one wins if both --foo and --no-foo. values[token.name] = token.value ?? true; } }); const color = values.color; const logfile = values.logfile ?? 'default.log'; console.log({ logfile, color }); // Try the following: // node negate.js // node negate.js --no-logfile --no-color // negate.js --logfile=test.log --color // node negate.js --no-logfile --logfile=test.log --color --no-color
Version data entries
33 entries across 33 versions & 1 rubygems