UNPKG

homebridge-config-ui-x

Version:

A web based management, configuration and control platform for Homebridge

33 lines (32 loc) 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const shared_utils_1 = require("@nestjs/common/utils/shared.utils"); const rxjs_1 = require("rxjs"); const execution_context_host_1 = require("../helpers/execution-context-host"); class GuardsConsumer { async tryActivate(guards, args, instance, callback, type) { if (!guards || shared_utils_1.isEmpty(guards)) { return true; } const context = this.createContext(args, instance, callback); context.setType(type); for (const guard of guards) { const result = guard.canActivate(context); if (await this.pickResult(result)) { continue; } return false; } return true; } createContext(args, instance, callback) { return new execution_context_host_1.ExecutionContextHost(args, instance.constructor, callback); } async pickResult(result) { if (result instanceof rxjs_1.Observable) { return result.toPromise(); } return result; } } exports.GuardsConsumer = GuardsConsumer;