UNPKG

injektor

Version:

The simple dependency injection for Devebot

40 lines (39 loc) 1.25 kB
"use strict"; var util = require("util"); var errors = {}; var stackTraceLimit = parseInt(process.env.ERROR_STACK_TRACE_LIMIT) || 100; Object.defineProperty(errors, "stackTraceLimit", { get: function () { return stackTraceLimit; }, set: function (a) { if (typeof a === "number") { stackTraceLimit = a; } } }); var AbstractError = function (a, b) { Error.call(this, a); this.message = a; this.payload = b; var c = Error.stackTraceLimit; Error.stackTraceLimit = stackTraceLimit; Error.captureStackTrace(this, this.constructor); Error.stackTraceLimit = c; }; util.inherits(AbstractError, Error); errors.isDerivative = function (a) { return typeof a === "function" && a.prototype instanceof AbstractError; }; errors.isDescendant = function (a) { return a instanceof AbstractError; }; var errorNames = ["DependencyNotFoundError", "DependencyCombinationError", "DependencyCycleDetectedError", "DuplicatedRelativeNameError", "InvalidMethodArgumentError", "InvalidArgumentSchemaError", "ValidatingArgumentError"]; errorNames.forEach(function (a) { errors[a] = function () { AbstractError.apply(this, arguments); this.name = a; }; util.inherits(errors[a], AbstractError); }); module.exports = errors;