UNPKG

@tsclean/core

Version:

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

31 lines 4.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WsProxy = void 0; const helpers_1 = require("../../helpers"); const rxjs_1 = require("rxjs"); class WsProxy { create(targetCallback, exceptionsHandler, targetPattern) { return async (...args) => { args = [...args, targetPattern !== null && targetPattern !== void 0 ? targetPattern : 'unknown']; try { const result = await targetCallback(...args); return !(0, rxjs_1.isObservable)(result) ? result : result.pipe((0, rxjs_1.catchError)(error => { this.handleError(exceptionsHandler, args, error); return rxjs_1.EMPTY; })); } catch (error) { this.handleError(exceptionsHandler, args, error); } }; } handleError(exceptionsHandler, args, error) { const host = new helpers_1.ExecutionContextHost(args); host.setType('ws'); exceptionsHandler.handle(error, host); } } exports.WsProxy = WsProxy; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtcHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvd2Vic29ja2V0cy9jb250ZXh0L3dzLXByb3h5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFxRDtBQUNyRCwrQkFBdUQ7QUFHdkQsTUFBYSxPQUFPO0lBQ1QsTUFBTSxDQUNYLGNBQW9ELEVBQ3BELGlCQUFzQyxFQUN0QyxhQUFzQjtRQUV0QixPQUFPLEtBQUssRUFBRSxHQUFHLElBQWUsRUFBRSxFQUFFO1lBQ2xDLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLGFBQWEsYUFBYixhQUFhLGNBQWIsYUFBYSxHQUFJLFNBQVMsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQztnQkFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUM3QyxPQUFPLENBQUMsSUFBQSxtQkFBWSxFQUFDLE1BQU0sQ0FBQztvQkFDMUIsQ0FBQyxDQUFDLE1BQU07b0JBQ1IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ1QsSUFBQSxpQkFBVSxFQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDakQsT0FBTyxZQUFLLENBQUM7b0JBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztZQUNSLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25ELENBQUM7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVyxDQUNULGlCQUFzQyxFQUN0QyxJQUFlLEVBQ2YsS0FBUTtRQUVSLE1BQU0sSUFBSSxHQUFHLElBQUksOEJBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRjtBQWpDSCwwQkFpQ0ciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeGVjdXRpb25Db250ZXh0SG9zdCB9IGZyb20gXCIuLi8uLi9oZWxwZXJzXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBFTVBUWSwgaXNPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFdzRXhjZXB0aW9uc0hhbmRsZXIgfSBmcm9tIFwiLi4vLi4vd2Vic29ja2V0c1wiO1xuXG5leHBvcnQgY2xhc3MgV3NQcm94eSB7XG4gICAgcHVibGljIGNyZWF0ZShcbiAgICAgIHRhcmdldENhbGxiYWNrOiAoLi4uYXJnczogdW5rbm93bltdKSA9PiBQcm9taXNlPGFueT4sXG4gICAgICBleGNlcHRpb25zSGFuZGxlcjogV3NFeGNlcHRpb25zSGFuZGxlcixcbiAgICAgIHRhcmdldFBhdHRlcm4/OiBzdHJpbmcsXG4gICAgKTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gUHJvbWlzZTxhbnk+IHtcbiAgICAgIHJldHVybiBhc3luYyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgICAgIGFyZ3MgPSBbLi4uYXJncywgdGFyZ2V0UGF0dGVybiA/PyAndW5rbm93biddO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRhcmdldENhbGxiYWNrKC4uLmFyZ3MpO1xuICAgICAgICAgIHJldHVybiAhaXNPYnNlcnZhYmxlKHJlc3VsdClcbiAgICAgICAgICAgID8gcmVzdWx0XG4gICAgICAgICAgICA6IHJlc3VsdC5waXBlKFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihleGNlcHRpb25zSGFuZGxlciwgYXJncywgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXhjZXB0aW9uc0hhbmRsZXIsIGFyZ3MsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gIFxuICAgIGhhbmRsZUVycm9yPFQ+KFxuICAgICAgZXhjZXB0aW9uc0hhbmRsZXI6IFdzRXhjZXB0aW9uc0hhbmRsZXIsXG4gICAgICBhcmdzOiB1bmtub3duW10sXG4gICAgICBlcnJvcjogVCxcbiAgICApIHtcbiAgICAgIGNvbnN0IGhvc3QgPSBuZXcgRXhlY3V0aW9uQ29udGV4dEhvc3QoYXJncyk7XG4gICAgICBob3N0LnNldFR5cGUoJ3dzJyk7XG4gICAgICBleGNlcHRpb25zSGFuZGxlci5oYW5kbGUoZXJyb3IsIGhvc3QpO1xuICAgIH1cbiAgfSJdfQ==