UNPKG

homebridge-config-ui-x

Version:

A web based management, configuration and control platform for Homebridge

34 lines (33 loc) 1.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const shared_utils_1 = require("@nestjs/common/utils/shared.utils"); const execution_context_host_1 = require("@nestjs/core/helpers/execution-context-host"); const rxjs_1 = require("rxjs"); const operators_1 = require("rxjs/operators"); class WsProxy { create(targetCallback, exceptionsHandler) { return async (...args) => { try { const result = await targetCallback(...args); return !this.isObservable(result) ? result : result.pipe(operators_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 execution_context_host_1.ExecutionContextHost(args); host.setType('ws'); exceptionsHandler.handle(error, host); } isObservable(result) { return result && shared_utils_1.isFunction(result.subscribe); } } exports.WsProxy = WsProxy;