Socket
Socket
Sign inDemoInstall

optimist

Package Overview
Dependencies
Maintainers
0
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

optimist - npm Package Compare versions

Comparing version 0.1.5 to 0.1.6

examples/boolean_double.js

107

index.js

@@ -44,4 +44,2 @@ module.exports = Argv;

self.argv = { _ : [], $0 : self.$0 };
function set (key, val) {

@@ -62,48 +60,77 @@ var num = Number(val);

for (var i = 0; i < args.length; i++) {
var arg = args[i];
var flags = { bools : {} };
self.boolean = function (bools) {
if (!Array.isArray(bools)) {
bools = [].slice.call(arguments);
}
if (arg == '--') {
self.argv._.push.apply(self.argv._, args.slice(i + 1));
break;
}
else if (arg.match(/^--.+=/)) {
var m = arg.match(/^--([^=]+)=(.*)/);
set(m[1], m[2]);
}
else if (arg.match(/^--no-.+/)) {
var key = arg.match(/^--no-(.+)/)[1];
set(key, false);
}
else if (arg.match(/^--.+/)) {
var key = arg.match(/^--(.+)/)[1];
var next = args[i + 1];
if (next !== undefined && !next.match(/^-/)) {
set(key, next);
i++;
bools.forEach(function (name) {
flags.bools[name] = true;
});
rescan();
bools.forEach(function (name) {
if (!self.argv[name]) {
self.argv[name] = false;
}
else {
set(key, true);
}
}
else if (arg.match(/^-[^-]+/)) {
arg.slice(1,-1).split('').forEach(function (letter) {
set(letter, true);
});
});
return self;
};
function rescan () {
self.argv = { _ : [], $0 : self.$0 };
for (var i = 0; i < args.length; i++) {
var arg = args[i];
var key = arg.slice(-1)[0];
if (args[i+1] && !args[i+1].match(/^-/)) {
set(key, args[i+1]);
i++;
if (arg == '--') {
self.argv._.push.apply(self.argv._, args.slice(i + 1));
break;
}
else if (arg.match(/^--.+=/)) {
var m = arg.match(/^--([^=]+)=(.*)/);
set(m[1], m[2]);
}
else if (arg.match(/^--no-.+/)) {
var key = arg.match(/^--no-(.+)/)[1];
set(key, false);
}
else if (arg.match(/^--.+/)) {
var key = arg.match(/^--(.+)/)[1];
var next = args[i + 1];
if (next !== undefined && !next.match(/^-/)
&& !flags.bools[key]) {
set(key, next);
i++;
}
else {
set(key, true);
}
}
else if (arg.match(/^-[^-]+/)) {
arg.slice(1,-1).split('').forEach(function (letter) {
set(letter, true);
});
var key = arg.slice(-1)[0];
if (args[i+1] && !args[i+1].match(/^-/)
&& !flags.bools[key]) {
set(key, args[i+1]);
i++;
}
else {
set(key, true);
}
}
else {
set(key, true);
var n = Number(arg);
self.argv._.push(isNaN(n) ? arg : n);
}
}
else {
var n = Number(arg);
self.argv._.push(isNaN(n) ? arg : n);
}
}
rescan();

@@ -110,0 +137,0 @@ var usage;

{
"name" : "optimist",
"version" : "0.1.5",
"version" : "0.1.6",
"description" : "Light-weight option parsing with an argv hash. No optstrings attached.",

@@ -5,0 +5,0 @@ "main" : "./index.js",

@@ -162,1 +162,24 @@ var optimist = require('optimist');

};
exports['flag boolean'] = function (assert) {
var parse = optimist([ '-t', 'moo' ]).boolean(['t']).argv;
assert.eql(parse, { t : true, _ : [ 'moo' ], $0 : 'expresso' });
assert.eql(typeof parse.t, 'boolean');
};
exports['boolean groups'] = function (assert) {
var parse = optimist([ '-x', '-z', 'one', 'two', 'three' ])
.boolean(['x','y','z']).argv;
assert.eql(parse, {
x : true,
y : false,
z : true,
_ : [ 'one', 'two', 'three' ],
$0 : 'expresso',
});
assert.eql(typeof parse.x, 'boolean');
assert.eql(typeof parse.y, 'boolean');
assert.eql(typeof parse.z, 'boolean');
};

Sorry, the diff of this file is not supported yet

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