Socket
Socket
Sign inDemoInstall

command-line-args

Package Overview
Dependencies
Maintainers
1
Versions
74
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

command-line-args - npm Package Compare versions

Comparing version 5.0.0-alpha.1 to 5.0.0-alpha.2

test/internals/option-definitions.js

2

doc/option-definition.md

@@ -56,3 +56,3 @@ <a name="module_option-definition"></a>

The most common values used are `String`, `Number` and `Boolean` but you can use a custom function, if you like:
The most common values used are `String`, `Number` and `Boolean` but you can use a custom function, for example:

@@ -59,0 +59,0 @@ ```js

@@ -45,3 +45,2 @@ 'use strict'

const optionUtil = require('./lib/option-util')
const Option = require('./lib/option')

@@ -84,3 +83,4 @@ const OutputClass = optionDefinitions.isGrouped() ? require('./lib/output-grouped') : require('./lib/output')

const result = output.toObject({ skipUnknown: !options.partial })
const optionUtil = require('./lib/option-util')
return options.camelCase ? optionUtil.camelCaseObject(result) : result
}
'use strict'
const optionUtil = require('./option-util')
const argvTools = require('argv-tools')

@@ -8,2 +8,5 @@ /**

/**
* @alias module:argv-parser
*/
class ArgvParser {

@@ -17,3 +20,3 @@ /**

constructor (definitions, options) {
this.options = options || {}
this.options = Object.assign({}, options)
const Definitions = require('./option-definitions')

@@ -25,10 +28,9 @@ /**

const Argv = require('./argv-array')
/**
* Argv
*/
this.argv = Argv.from(this.options.argv)
if (this.argv.hasShortOptions()) {
this.argv = argvTools.ArgvArray.from(this.options.argv)
if (this.argv.hasCombinedShortOptions()) {
const findReplace = require('find-replace')
findReplace(this.argv, optionUtil.combined, arg => {
findReplace(this.argv, argvTools.re.combinedShort, arg => {
arg = arg.slice(1)

@@ -41,3 +43,3 @@ return arg.split('').map(letter => ({ origArg: `-${arg}`, arg: '-' + letter }))

/**
* Yields one `{ event, name, value, arg, def }` pair for each arg in `process.argv` or the `options.argv`.
* Yields one `{ event, name, value, arg, def }` argInfo object for each arg in `process.argv` (or `options.argv`).
*/

@@ -68,3 +70,3 @@ * [Symbol.iterator] () {

/* handle long or short option */
if (optionUtil.isOption(arg)) {
if (argvTools.isOption(arg)) {
def = definitions.get(arg)

@@ -80,4 +82,4 @@ value = undefined

/* handle --option-value notation */
} else if (optionUtil.isOptionEqualsNotation(arg)) {
const matches = arg.match(optionUtil.optEquals)
} else if (argvTools.isOptionEqualsNotation(arg)) {
const matches = arg.match(argvTools.re.optEquals)
def = definitions.get(matches[1])

@@ -98,3 +100,3 @@ if (def) {

/* handle value */
} else if (optionUtil.isValue(arg)) {
} else if (argvTools.isValue(arg)) {
if (def) {

@@ -101,0 +103,0 @@ value = arg

@@ -48,3 +48,3 @@ 'use strict'

*
* The most common values used are `String`, `Number` and `Boolean` but you can use a custom function, if you like:
* The most common values used are `String`, `Number` and `Boolean` but you can use a custom function, for example:
*

@@ -51,0 +51,0 @@ * ```js

'use strict'
const arrayify = require('array-back')
const option = require('./option-util')
const argvTools = require('argv-tools')
const t = require('typical')

@@ -14,6 +14,2 @@

class Definitions extends Array {
clear () {
this.length = 0
}
/**

@@ -117,6 +113,6 @@ * validate option definitions

get (arg) {
if (option.isOption(arg)) {
return option.short.test(arg)
? this.find(def => def.alias === option.short.name(arg))
: this.find(def => def.name === option.long.name(arg))
if (argvTools.isOption(arg)) {
return argvTools.re.short.test(arg)
? this.find(def => def.alias === argvTools.getOptionName(arg))
: this.find(def => def.name === argvTools.getOptionName(arg))
} else {

@@ -123,0 +119,0 @@ return this.find(def => def.name === arg)

'use strict'
class ArgRegExp extends RegExp {
name (arg) {
return arg.match(this)[1]
}
}
class OptEqualsRegExp extends RegExp {
name (arg) {
return arg.match(this)[1]
}
value (arg) {
return arg.match(this)[2]
}
}
function camelCaseObject (object) {

@@ -30,10 +15,2 @@ const camelCase = require('lodash.camelcase')

exports.short = new ArgRegExp('^-([^\\d-])$')
exports.long = new ArgRegExp('^--(\\S+)')
exports.combined = /^-[^\d-]{2,}$/
exports.isOption = arg => (exports.short.test(arg) || exports.long.test(arg)) && !exports.optEquals.test(arg)
exports.optEquals = new OptEqualsRegExp('^(--\\S+?)=(.*)')
exports.isOptionEqualsNotation = arg => exports.optEquals.test(arg)
exports.isValue = arg => !(exports.isOption() || exports.combined.test(arg) || exports.optEquals.test(arg))
exports.VALUE_MARKER = 'EXPLICIT-VALUE-MARKER-656a659e9efb-' // must be unique
exports.camelCaseObject = camelCaseObject
{
"name": "command-line-args",
"version": "5.0.0-alpha.1",
"version": "5.0.0-alpha.2",
"description": "A mature, feature-complete library to parse command-line options.",

@@ -35,2 +35,3 @@ "repository": "https://github.com/75lb/command-line-args.git",

"dependencies": {
"argv-tools": "^0.1.1",
"array-back": "^2.0.0",

@@ -37,0 +38,0 @@ "find-replace": "^2.0.1",

@@ -23,3 +23,3 @@ [![view on npm](https://img.shields.io/npm/v/command-line-args.svg)](https://www.npmjs.org/package/command-line-args)

To access the values, first create a list of [option definitions](https://github.com/75lb/command-line-args/blob/next/doc/option-definition.md) describing your accepted options. The [`type`](https://github.com/75lb/command-line-args/blob/next/doc/option-definition.md#optiontype--function) property is a setter function (the value supplied is passed through this), giving you full control over the value received.
To access the values, first create a list of [option definitions](https://github.com/75lb/command-line-args/blob/next/doc/option-definition.md) describing the options your application accepts. The [`type`](https://github.com/75lb/command-line-args/blob/next/doc/option-definition.md#optiontype--function) property is a setter function (the value supplied is passed through this), giving you full control over the value received.

@@ -26,0 +26,0 @@ ```js

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc