Don't actually construct real Errors with stacktraces, for performance reasons

master
Sven Slootweg 4 years ago
parent 696492df7f
commit 73838db4b5

@ -1,12 +1,19 @@
"use strict"; "use strict";
const createError = require("create-error"); // NOTE: We don't actually inherit from the real Error here, because collecting stacktraces is very expensive and largely useless for our purposes. Validatem's own error reporting is clear enough, and if not, that's a bug in Validatem anyway.
function ValidationError(message, properties) {
this.message = message;
module.exports = createError("ValidationError", { Object.assign(this, {
path: [], path: [],
// NOTE: The below are for potential future compatibility logic.
___validatem_isValidationError: true, ___validatem_isValidationError: true,
___validatem_errorVersion: 1 ___validatem_errorVersion: 1
}); });
Object.assign(this, properties);
}
ValidationError.prototype.name = "ValidationError";
module.exports = ValidationError;
module.exports.__modulePath = __dirname; module.exports.__modulePath = __dirname;

@ -4,8 +4,5 @@
"main": "index.js", "main": "index.js",
"repository": "http://git.cryto.net/validatem/error.git", "repository": "http://git.cryto.net/validatem/error.git",
"author": "Sven Slootweg <admin@cryto.net>", "author": "Sven Slootweg <admin@cryto.net>",
"license": "WTFPL OR CC0-1.0", "license": "WTFPL OR CC0-1.0"
"dependencies": {
"create-error": "^0.3.1"
}
} }

Loading…
Cancel
Save