UNPKG

@kitstack/nest-powertools

Version:

A comprehensive collection of NestJS powertools, decorators, and utilities to supercharge your backend development

40 lines 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GuardHelper = void 0; const guard_registry_1 = require("../config/guard-registry"); class GuardHelper { static registerGuard(name, guard) { this.registry.registerGuard(name, guard); } static createRoleGuard(roles) { return new guard_registry_1.RoleBasedGuard(roles); } static createPermissionGuard(permissions) { return new guard_registry_1.PermissionBasedGuard(permissions); } static createOwnershipGuard(resourceIdParam = 'id') { return new guard_registry_1.OwnershipGuard(resourceIdParam); } static createTimeBasedGuard(allowedHours) { return new guard_registry_1.TimeBasedGuard(allowedHours); } static createCompositeGuard(guards, operator = 'AND') { return { async canActivate(context, user, requiredPermissions) { const results = await Promise.all(guards.map((guard) => guard.canActivate(context, user, requiredPermissions))); return operator === 'AND' ? results.every((result) => result) : results.some((result) => result); }, }; } static getRegisteredGuards() { return Object.keys(this.registry.getAllGuards()); } static removeGuard(name) { return this.registry.removeGuard(name); } } exports.GuardHelper = GuardHelper; GuardHelper.registry = guard_registry_1.GuardRegistryService.getInstance(); //# sourceMappingURL=guard.helper.js.map