@tsclean/core
Version:
Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.
32 lines • 3.26 kB
JavaScript
;
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=