UNPKG

@tsclean/core

Version:

Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.

32 lines 3.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExceptionsZone = void 0; const services_1 = require("../services"); const exception_handler_1 = require("./exception-handler"); const DEFAULT_TEARDOWN = () => process.exit(1); class ExceptionsZone { static run(callback, teardown = DEFAULT_TEARDOWN) { try { callback(); } catch (e) { this.exceptionHandler.handle(e); teardown(e); } } static async asyncRun(callback, teardown = DEFAULT_TEARDOWN, autoFlushLogs) { try { await callback(); } catch (e) { this.exceptionHandler.handle(e); if (autoFlushLogs) { services_1.Logger.flush(); } teardown(e); } } } exports.ExceptionsZone = ExceptionsZone; ExceptionsZone.exceptionHandler = new exception_handler_1.ExceptionHandler(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZXB0aW9ucy16b25lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy9leGNlcHRpb25zLXpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQW9DO0FBQ3BDLDJEQUFzRDtBQUV0RCxNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFFOUMsTUFBYSxjQUFjO0lBR2xCLE1BQU0sQ0FBQyxHQUFHLENBQ2YsUUFBb0IsRUFDcEIsV0FBK0IsZ0JBQWdCO1FBRS9DLElBQUksQ0FBQztZQUNILFFBQVEsRUFBRSxDQUFBO1FBQ1osQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQy9CLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNiLENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQzFCLFFBQTZCLEVBQzdCLFdBQStCLGdCQUFnQixFQUMvQyxhQUFzQjtRQUV0QixJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsRUFBRSxDQUFBO1FBQ2xCLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUMvQixJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixpQkFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQ2hCLENBQUM7WUFDRCxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDYixDQUFDO0lBQ0gsQ0FBQzs7QUE3Qkgsd0NBOEJDO0FBN0J5QiwrQkFBZ0IsR0FBRyxJQUFJLG9DQUFnQixFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnZXIgfSBmcm9tICcuLi9zZXJ2aWNlcydcbmltcG9ydCB7IEV4Y2VwdGlvbkhhbmRsZXIgfSBmcm9tICcuL2V4Y2VwdGlvbi1oYW5kbGVyJ1xuXG5jb25zdCBERUZBVUxUX1RFQVJET1dOID0gKCkgPT4gcHJvY2Vzcy5leGl0KDEpXG5cbmV4cG9ydCBjbGFzcyBFeGNlcHRpb25zWm9uZSB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGV4Y2VwdGlvbkhhbmRsZXIgPSBuZXcgRXhjZXB0aW9uSGFuZGxlcigpXG5cbiAgcHVibGljIHN0YXRpYyBydW4gKFxuICAgIGNhbGxiYWNrOiAoKSA9PiB2b2lkLFxuICAgIHRlYXJkb3duOiAoZXJyOiBhbnkpID0+IHZvaWQgPSBERUZBVUxUX1RFQVJET1dOXG4gICkge1xuICAgIHRyeSB7XG4gICAgICBjYWxsYmFjaygpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5leGNlcHRpb25IYW5kbGVyLmhhbmRsZShlKVxuICAgICAgdGVhcmRvd24oZSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGFzeW5jIGFzeW5jUnVuIChcbiAgICBjYWxsYmFjazogKCkgPT4gUHJvbWlzZTx2b2lkPixcbiAgICB0ZWFyZG93bjogKGVycjogYW55KSA9PiB2b2lkID0gREVGQVVMVF9URUFSRE9XTixcbiAgICBhdXRvRmx1c2hMb2dzOiBib29sZWFuXG4gICkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjYWxsYmFjaygpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5leGNlcHRpb25IYW5kbGVyLmhhbmRsZShlKVxuICAgICAgaWYgKGF1dG9GbHVzaExvZ3MpIHtcbiAgICAgICAgTG9nZ2VyLmZsdXNoKClcbiAgICAgIH1cbiAgICAgIHRlYXJkb3duKGUpXG4gICAgfVxuICB9XG59XG4iXX0=