You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.2 KiB
50 lines
1.2 KiB
'use strict'; |
|
|
|
|
|
var format = require('util').format; |
|
|
|
|
|
var ERR_CODE = 'ARGError'; |
|
|
|
/*:nodoc:* |
|
* argumentError(argument, message) -> TypeError |
|
* - argument (Object): action with broken argument |
|
* - message (String): error message |
|
* |
|
* Error format helper. An error from creating or using an argument |
|
* (optional or positional). The string value of this exception |
|
* is the message, augmented with information |
|
* about the argument that caused it. |
|
* |
|
* #####Example |
|
* |
|
* var argumentErrorHelper = require('./argument/error'); |
|
* if (conflictOptionals.length > 0) { |
|
* throw argumentErrorHelper( |
|
* action, |
|
* format('Conflicting option string(s): %s', conflictOptionals.join(', ')) |
|
* ); |
|
* } |
|
* |
|
**/ |
|
module.exports = function (argument, message) { |
|
var argumentName = null; |
|
var errMessage; |
|
var err; |
|
|
|
if (argument.getName) { |
|
argumentName = argument.getName(); |
|
} else { |
|
argumentName = '' + argument; |
|
} |
|
|
|
if (!argumentName) { |
|
errMessage = message; |
|
} else { |
|
errMessage = format('argument "%s": %s', argumentName, message); |
|
} |
|
|
|
err = new TypeError(errMessage); |
|
err.code = ERR_CODE; |
|
return err; |
|
};
|
|
|