50 lines
1.2 KiB
JavaScript
Executable file
50 lines
1.2 KiB
JavaScript
Executable file
'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;
|
|
};
|