@tsclean/core
Version:
Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.
19 lines • 3.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UseGuards = UseGuards;
const helpers_1 = require("../helpers");
const utils_1 = require("../utils");
function UseGuards(...guards) {
return (target, key, descriptor) => {
const isGuardValid = (guard) => guard && ((0, utils_1.isFunction)(guard) || (0, utils_1.isFunction)(guard.canActivate));
if (descriptor) {
(0, utils_1.validateEach)(target.constructor, guards, isGuardValid, '@UseGuards', 'guard');
(0, utils_1.extendArrayMetadata)(helpers_1.GUARDS_METADATA, guards, descriptor.value);
return descriptor;
}
(0, utils_1.validateEach)(target, guards, isGuardValid, '@UseGuards', 'guard');
(0, utils_1.extendArrayMetadata)(helpers_1.GUARDS_METADATA, guards, target);
return target;
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWd1YXJkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL3VzZS1ndWFyZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSw4QkEwQkM7QUE5QkQsd0NBQTZDO0FBRTdDLG9DQUF5RTtBQUV6RSxTQUFnQixTQUFTLENBQ3ZCLEdBQUcsTUFBa0M7SUFFckMsT0FBTyxDQUNMLE1BQVcsRUFDWCxHQUFxQixFQUNyQixVQUF5QyxFQUN6QyxFQUFFO1FBQ0YsTUFBTSxZQUFZLEdBQUcsQ0FBMkMsS0FBUSxFQUFFLEVBQUUsQ0FDMUUsS0FBSyxJQUFJLENBQUMsSUFBQSxrQkFBVSxFQUFDLEtBQUssQ0FBQyxJQUFJLElBQUEsa0JBQVUsRUFBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUVoRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsSUFBQSxvQkFBWSxFQUNWLE1BQU0sQ0FBQyxXQUFXLEVBQ2xCLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLE9BQU8sQ0FDUixDQUFDO1lBQ0YsSUFBQSwyQkFBbUIsRUFBQyx5QkFBZSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0QsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUNELElBQUEsb0JBQVksRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEUsSUFBQSwyQkFBbUIsRUFBQyx5QkFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR1VBUkRTX01FVEFEQVRBIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSB9IGZyb20gJy4uL2NvbnRyYWN0cy9jYW4tYWN0aXZhdGUnO1xuaW1wb3J0IHsgZXh0ZW5kQXJyYXlNZXRhZGF0YSwgaXNGdW5jdGlvbiwgdmFsaWRhdGVFYWNoIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gVXNlR3VhcmRzKFxuICAuLi5ndWFyZHM6IChDYW5BY3RpdmF0ZSB8IEZ1bmN0aW9uKVtdXG4pOiBNZXRob2REZWNvcmF0b3IgJiBDbGFzc0RlY29yYXRvciB7XG4gIHJldHVybiAoXG4gICAgdGFyZ2V0OiBhbnksXG4gICAga2V5Pzogc3RyaW5nIHwgc3ltYm9sLFxuICAgIGRlc2NyaXB0b3I/OiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxhbnk+LFxuICApID0+IHtcbiAgICBjb25zdCBpc0d1YXJkVmFsaWQgPSA8VCBleHRlbmRzIEZ1bmN0aW9uIHwgUmVjb3JkPHN0cmluZywgYW55Pj4oZ3VhcmQ6IFQpID0+XG4gICAgICBndWFyZCAmJiAoaXNGdW5jdGlvbihndWFyZCkgfHwgaXNGdW5jdGlvbihndWFyZC5jYW5BY3RpdmF0ZSkpO1xuXG4gICAgaWYgKGRlc2NyaXB0b3IpIHtcbiAgICAgIHZhbGlkYXRlRWFjaChcbiAgICAgICAgdGFyZ2V0LmNvbnN0cnVjdG9yLFxuICAgICAgICBndWFyZHMsXG4gICAgICAgIGlzR3VhcmRWYWxpZCxcbiAgICAgICAgJ0BVc2VHdWFyZHMnLFxuICAgICAgICAnZ3VhcmQnLFxuICAgICAgKTtcbiAgICAgIGV4dGVuZEFycmF5TWV0YWRhdGEoR1VBUkRTX01FVEFEQVRBLCBndWFyZHMsIGRlc2NyaXB0b3IudmFsdWUpO1xuICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxuICAgIHZhbGlkYXRlRWFjaCh0YXJnZXQsIGd1YXJkcywgaXNHdWFyZFZhbGlkLCAnQFVzZUd1YXJkcycsICdndWFyZCcpO1xuICAgIGV4dGVuZEFycmF5TWV0YWRhdGEoR1VBUkRTX01FVEFEQVRBLCBndWFyZHMsIHRhcmdldCk7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfTtcbn1cbiJdfQ==