UNPKG

dino-core

Version:

A dependency injection framework for NodeJS applications

70 lines 2.42 kB
"use strict"; // Copyright 2018 Quirino Brizi [quirino.brizi@gmail.com] // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. Object.defineProperty(exports, "__esModule", { value: true }); exports.ErrorHandler = void 0; const Logger_1 = require("../Logger"); const error_type_1 = require("./error.type"); const injectable_1 = require("./injectable"); /** * An error handler will be registered and invoked in case of an uncought error or unhandled promise * * When contextScan is set to true, classes extending this class will be * automatically discovered and injected on the application context. * @typedef {ErrorHandler} * * @public * @abstract * * @class ErrorHandler * @since 0.4.7 */ class ErrorHandler extends injectable_1.Injectable { /** * Lifecycle hook allows to execute initialization steps for a component behaviour. * * @public */ postConstruct() { process.on('uncaughtException', (error) => { this.handle(error, error_type_1.ErrorType.UNCAUGHT_ERROR); }); process.on('unhandledRejection', (error) => { this.handle(error, error_type_1.ErrorType.UNCAUGHT_PROMISE); }); } /** * Lifecycle hook allows to execute initialization steps for a component behaviour. * * @public */ preDestroy() { } /** * Handler for the uncaught error, in its basic form the method is empty and * just logs the received error. * Extend it to include your logic * @param {Error} error the error that has been caught * @param {ErrorType} type the type of error that has been caught * * @public */ handle(error, type) { Logger_1.Logger.error(`${type} - ${error.message}`); } getTypeName() { return 'ErrorHandler'; } } exports.ErrorHandler = ErrorHandler; //# sourceMappingURL=error.handler.js.map