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.
		
		
		
		
		
			
		
			
				
					56 lines
				
				1.3 KiB
			
		
		
			
		
	
	
					56 lines
				
				1.3 KiB
			| 
											3 years ago
										 | // YAML error class. http://stackoverflow.com/questions/8458984
 | ||
|  | //
 | ||
|  | 'use strict'; | ||
|  | 
 | ||
|  | 
 | ||
|  | function formatError(exception, compact) { | ||
|  |   var where = '', message = exception.reason || '(unknown reason)'; | ||
|  | 
 | ||
|  |   if (!exception.mark) return message; | ||
|  | 
 | ||
|  |   if (exception.mark.name) { | ||
|  |     where += 'in "' + exception.mark.name + '" '; | ||
|  |   } | ||
|  | 
 | ||
|  |   where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')'; | ||
|  | 
 | ||
|  |   if (!compact && exception.mark.snippet) { | ||
|  |     where += '\n\n' + exception.mark.snippet; | ||
|  |   } | ||
|  | 
 | ||
|  |   return message + ' ' + where; | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | function YAMLException(reason, mark) { | ||
|  |   // Super constructor
 | ||
|  |   Error.call(this); | ||
|  | 
 | ||
|  |   this.name = 'YAMLException'; | ||
|  |   this.reason = reason; | ||
|  |   this.mark = mark; | ||
|  |   this.message = formatError(this, false); | ||
|  | 
 | ||
|  |   // Include stack trace in error object
 | ||
|  |   if (Error.captureStackTrace) { | ||
|  |     // Chrome and NodeJS
 | ||
|  |     Error.captureStackTrace(this, this.constructor); | ||
|  |   } else { | ||
|  |     // FF, IE 10+ and Safari 6+. Fallback for others
 | ||
|  |     this.stack = (new Error()).stack || ''; | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | // Inherit from Error
 | ||
|  | YAMLException.prototype = Object.create(Error.prototype); | ||
|  | YAMLException.prototype.constructor = YAMLException; | ||
|  | 
 | ||
|  | 
 | ||
|  | YAMLException.prototype.toString = function toString(compact) { | ||
|  |   return this.name + ': ' + formatError(this, compact); | ||
|  | }; | ||
|  | 
 | ||
|  | 
 | ||
|  | module.exports = YAMLException; |