Socket
Socket
Sign inDemoInstall

dashdash

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dashdash - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

10

CHANGES.md
# node-dashdash changelog
## 1.0.2
- Add "positiveInteger" and "arrayOfPositiveInteger" option types that only
accept positive integers.
- Add "integer" and "arrayOfInteger" option types that accepts only integers.
Note that, for better or worse, these do NOT accept: "0x42" (hex), "1e2"
(with exponent) or "1.", "3.0" (floats).
## 1.0.1

@@ -4,0 +14,0 @@

@@ -95,2 +95,24 @@ /**

function parseInteger(option, optstr, arg) {
assert.string(arg, 'arg');
var num = Number(arg);
if (!/^[0-9-]+$/.test(arg) || isNaN(num)) {
optstr = (optstr.length > 1 ? '--'+optstr : '-'+optstr);
throw new Error(format('arg for "%s" is not an integer: "%s"',
optstr, arg));
}
return num;
}
function parsePositiveInteger(option, optstr, arg) {
assert.string(arg, 'arg');
var num = Number(arg);
if (!/^[0-9]+$/.test(arg) || isNaN(num)) {
optstr = (optstr.length > 1 ? '--'+optstr : '-'+optstr);
throw new Error(format('arg for "%s" is not a positive integer: "%s"',
optstr, arg));
}
return num;
}
var types = {

@@ -111,2 +133,12 @@ bool: {

},
integer: {
takesArg: true,
helpArg: 'INT',
parseArg: parseInteger
},
positiveInteger: {
takesArg: true,
helpArg: 'INT',
parseArg: parsePositiveInteger
},
arrayOfBool: {

@@ -129,2 +161,14 @@ takesArg: false,

},
arrayOfInteger: {
takesArg: true,
helpArg: 'INT',
array: true,
parseArg: parseInteger
},
arrayOfPositiveInteger: {
takesArg: true,
helpArg: 'INT',
array: true,
parseArg: parsePositiveInteger
},
};

@@ -131,0 +175,0 @@

2

package.json
{
"name": "dashdash",
"description": "Yet another node.js option parsing library",
"version": "1.0.1",
"version": "1.0.2",
"author": "Trent Mick (trentm.com)",

@@ -6,0 +6,0 @@ "repository": {

@@ -150,6 +150,18 @@ Yet another node.js option parsing library.

- `type` (String). Required. One of bool, string, number, arrayOfBool,
arrayOfString, arrayOfNumber. (FWIW, these names attempt to match with
asserts on [assert-plus](https://github.com/mcavage/node-assert-plus)).
- `type` (String). Required. One of:
- bool
- string
- number
- integer
- positiveInteger
- arrayOfBool
- arrayOfString
- arrayOfNumber
- arrayOfInteger
- arrayOfPositiveInteger
FWIW, these names attempt to match with asserts on
[assert-plus](https://github.com/mcavage/node-assert-plus).
- `help` (String). Optional. Used for `parser.help()` output.

@@ -156,0 +168,0 @@

@@ -312,2 +312,114 @@ /*

// integer
{
options: [ {name: 't', type: 'integer'} ],
argv: 'node tool.js -t 0',
expect: { t: 0, _args: [] }
},
{
options: [ {name: 't', type: 'integer'} ],
argv: 'node tool.js -t 42',
expect: { t: 42, _args: [] }
},
{
options: [ {name: 't', type: 'integer'} ],
argv: 'node tool.js -t42',
expect: { t: 42, _args: [] }
},
{
options: [ {name: 't', type: 'integer'} ],
argv: 'node tool.js -t -5',
expect: { t: -5, _args: [] }
},
{
options: [ {name: 't', type: 'integer'} ],
argv: 'node tool.js -t-5',
expect: { t: -5, _args: [] }
},
{
options: [ {name: 't', type: 'integer'} ],
argv: 'node tool.js -t 1e2',
/* JSSTYLED */
expect: /arg for "-t" is not an integer/
},
{
options: [ {name: 't', type: 'integer'} ],
argv: 'node tool.js -t 0x32',
/* JSSTYLED */
expect: /arg for "-t" is not an integer/
},
{
options: [ {name: 't', type: 'integer'} ],
argv: 'node tool.js -t 3.1',
/* JSSTYLED */
expect: /arg for "-t" is not an integer/
},
{
options: [ {name: 't', type: 'integer'} ],
argv: 'node tool.js -t 42.',
/* JSSTYLED */
expect: /arg for "-t" is not an integer/
},
{
options: [ {name: 't', type: 'integer'} ],
argv: 'node tool.js -t 1e-2',
/* JSSTYLED */
expect: /arg for "-t" is not an integer/
},
{
options: [ {name: 't', type: 'arrayOfInteger'} ],
argv: 'node tool.js',
expect: { _args: [] }
},
{
options: [ {name: 't', type: 'arrayOfInteger'} ],
argv: 'node tool.js -t 42',
expect: { t: [42], _args: [] }
},
{
options: [ {name: 't', type: 'arrayOfInteger'} ],
argv: 'node tool.js -t 1 -t 2 -t -3',
expect: { t: [1, 2, -3], _args: [] }
},
{
options: [ {name: 't', type: 'arrayOfInteger'} ],
argv: 'node tool.js -t 1 -t 1e2',
/* JSSTYLED */
expect: /arg for "-t" is not an integer/
},
// positiveInteger
{
options: [ {name: 't', type: 'positiveInteger'} ],
argv: 'node tool.js -t 0',
expect: { t: 0, _args: [] }
},
{
options: [ {name: 't', type: 'positiveInteger'} ],
argv: 'node tool.js -t 42',
expect: { t: 42, _args: [] }
},
{
options: [ {name: 't', type: 'positiveInteger'} ],
argv: 'node tool.js -t42',
expect: { t: 42, _args: [] }
},
{
options: [ {name: 't', type: 'positiveInteger'} ],
argv: 'node tool.js -t -5',
/* JSSTYLED */
expect: /arg for "-t" is not a positive integer/
},
{
options: [ {name: 't', type: 'arrayOfPositiveInteger'} ],
argv: 'node tool.js -t42',
expect: { t: [42], _args: [] }
},
{
options: [ {name: 't', type: 'arrayOfPositiveInteger'} ],
argv: 'node tool.js -t 42 -t -5',
/* JSSTYLED */
expect: /arg for "-t" is not a positive integer/
},
];

@@ -342,3 +454,3 @@ cases.forEach(function (c, i) {

}
t.ok(error, 'got an expected error');
t.ok(error, 'expected an error');
} else if (expect) {

@@ -345,0 +457,0 @@ opts = parser.parse(argv);

# someday/maybe
- type 'int'
- being able to add types: i.e. a validator (easy to do, just haven't exposed)
- make check
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