diff options
Diffstat (limited to 'deps/npm/node_modules/@pkgjs/parseargs/examples/limit-long-syntax.js')
-rw-r--r-- | deps/npm/node_modules/@pkgjs/parseargs/examples/limit-long-syntax.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/deps/npm/node_modules/@pkgjs/parseargs/examples/limit-long-syntax.js b/deps/npm/node_modules/@pkgjs/parseargs/examples/limit-long-syntax.js new file mode 100644 index 0000000000..943e643ee9 --- /dev/null +++ b/deps/npm/node_modules/@pkgjs/parseargs/examples/limit-long-syntax.js @@ -0,0 +1,35 @@ +'use strict'; + +// This is an example of using tokens to add a custom behaviour. +// +// Require the use of `=` for long options and values by blocking +// the use of space separated values. +// So allow `--foo=bar`, and not allow `--foo bar`. +// +// Note: this is not a common behaviour, most CLIs allow both forms. + +// 1. const { parseArgs } = require('node:util'); // from node +// 2. const { parseArgs } = require('@pkgjs/parseargs'); // from package +const { parseArgs } = require('..'); // in repo + +const options = { + file: { short: 'f', type: 'string' }, + log: { type: 'string' }, +}; + +const { values, tokens } = parseArgs({ options, tokens: true }); + +const badToken = tokens.find((token) => token.kind === 'option' && + token.value != null && + token.rawName.startsWith('--') && + !token.inlineValue +); +if (badToken) { + throw new Error(`Option value for '${badToken.rawName}' must be inline, like '${badToken.rawName}=VALUE'`); +} + +console.log(values); + +// Try the following: +// node limit-long-syntax.js -f FILE --log=LOG +// node limit-long-syntax.js --file FILE |