'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; };