MioIsland/landing/node_modules/js-yaml/lib/exception.js
xmqywx 5deeaffc8a refactor(plugins): remove JSON-based plugin system
Replace with native .bundle plugin architecture in next commits.
Old declarative system (themes/buddy/sound JSON) removed entirely.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-04-10 21:21:18 +08:00

55 lines
1.3 KiB
JavaScript

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