UNPKG

@gabliam/express

Version:
35 lines (34 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExpressConverter = void 0; const tslib_1 = require("tslib"); const core_1 = require("@gabliam/core"); const web_core_1 = require("@gabliam/web-core"); /** * Class for convert interceptor to Express Middleware */ let ExpressConverter = class ExpressConverter { interceptorToMiddleware(clazz) { const container = this[core_1.INJECT_CONTAINER_KEY]; const instance = (0, web_core_1.createInterceptorResolver)(container)(clazz); if (!(0, web_core_1.isInterceptor)(instance)) { throw new web_core_1.BadInterceptorError(instance); } const extractArgs = (0, web_core_1.getExtractArgs)(container, instance, 'intercept', true); return async (req, res, next) => { const args = await extractArgs((0, web_core_1.getContext)(req), null, next); try { await (0, core_1.toPromise)(instance.intercept(...args)); next(); } catch (err) { next(err); } }; } }; ExpressConverter = tslib_1.__decorate([ (0, core_1.InjectContainer)(), (0, core_1.Service)() ], ExpressConverter); exports.ExpressConverter = ExpressConverter;