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