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