51 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| '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;
 | |
| };
 | 
