Add --noerr to turn off argument name checking

for now only used for keys passed to `-c` or `-b`.
This commit is contained in:
Mihai Bazon
2013-11-28 13:15:01 +02:00
parent 73d082df2e
commit c16d538ce7
2 changed files with 13 additions and 1 deletions

View File

@@ -62,6 +62,7 @@ You need to pass an argument to this option to specify the name that your module
.describe("lint", "Display some scope warnings")
.describe("v", "Verbose")
.describe("V", "Print version number and exit.")
.describe("noerr", "Don't throw an error for unknown options in -c, -b or -m.")
.alias("p", "prefix")
.alias("o", "output")
@@ -96,6 +97,7 @@ You need to pass an argument to this option to specify the name that your module
.boolean("spidermonkey")
.boolean("lint")
.boolean("V")
.boolean("noerr")
.wrap(80)
@@ -104,6 +106,12 @@ You need to pass an argument to this option to specify the name that your module
normalize(ARGS);
if (ARGS.noerr) {
UglifyJS.DefaultsError.croak = function(msg, defs) {
sys.error("WARN: " + msg);
};
}
if (ARGS.version || ARGS.V) {
var json = require("../package.json");
sys.puts(json.name + ' ' + json.version);

View File

@@ -86,12 +86,16 @@ function DefaultsError(msg, defs) {
this.defs = defs;
};
DefaultsError.croak = function(msg, defs) {
throw new DefaultsError(msg, defs);
};
function defaults(args, defs, croak) {
if (args === true)
args = {};
var ret = args || {};
if (croak) for (var i in ret) if (ret.hasOwnProperty(i) && !defs.hasOwnProperty(i))
throw new DefaultsError("`" + i + "` is not a supported option", defs);
DefaultsError.croak("`" + i + "` is not a supported option", defs);
for (var i in defs) if (defs.hasOwnProperty(i)) {
ret[i] = (args && args.hasOwnProperty(i)) ? args[i] : defs[i];
}