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