@tsclean/core
Version:
Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.
21 lines • 4.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Interceptors = Interceptors;
const utils_1 = require("../utils");
const helpers_1 = require("../helpers");
function Interceptors(...interceptors) {
return (target, key, descriptor) => {
const isInterceptorValid = (interceptor) => interceptor &&
((0, utils_1.isFunction)(interceptor) ||
(0, utils_1.isFunction)(interceptor.intercept));
if (descriptor) {
(0, utils_1.validateEach)(target.constructor, interceptors, isInterceptorValid, '@Interceptors', 'interceptor');
(0, utils_1.extendArrayMetadata)(helpers_1.INTERCEPTORS_METADATA, interceptors, descriptor.value);
return descriptor;
}
(0, utils_1.validateEach)(target, interceptors, isInterceptorValid, '@Interceptors', 'interceptor');
(0, utils_1.extendArrayMetadata)(helpers_1.INTERCEPTORS_METADATA, interceptors, target);
return target;
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9ycy9pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLG9DQXdDQztBQTVDRCxvQ0FBdUU7QUFFdkUsd0NBQWlEO0FBRWpELFNBQWdCLFlBQVksQ0FDeEIsR0FBRyxZQUFpRDtJQUVwRCxPQUFPLENBQ0gsTUFBVyxFQUNYLEdBQXFCLEVBQ3JCLFVBQXlDLEVBQzNDLEVBQUU7UUFDQSxNQUFNLGtCQUFrQixHQUFHLENBQ3ZCLFdBQWMsRUFDaEIsRUFBRSxDQUNBLFdBQVc7WUFDWCxDQUFDLElBQUEsa0JBQVUsRUFBQyxXQUFXLENBQUM7Z0JBQ3BCLElBQUEsa0JBQVUsRUFBRSxXQUFtQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFcEUsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNiLElBQUEsb0JBQVksRUFDUixNQUFNLENBQUMsV0FBVyxFQUNsQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixhQUFhLENBQ2hCLENBQUM7WUFDRixJQUFBLDJCQUFtQixFQUNmLCtCQUFxQixFQUNyQixZQUFZLEVBQ1osVUFBVSxDQUFDLEtBQUssQ0FDbkIsQ0FBQztZQUNGLE9BQU8sVUFBVSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFBLG9CQUFZLEVBQ1IsTUFBTSxFQUNOLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGFBQWEsQ0FDaEIsQ0FBQztRQUNGLElBQUEsMkJBQW1CLEVBQUMsK0JBQXFCLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2V4dGVuZEFycmF5TWV0YWRhdGEsIGlzRnVuY3Rpb24sIHZhbGlkYXRlRWFjaH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQge0ludGVyY2VwdG9ySW50ZXJmYWNlfSBmcm9tIFwiLi4vY29udHJhY3RzXCI7XG5pbXBvcnQge0lOVEVSQ0VQVE9SU19NRVRBREFUQX0gZnJvbSBcIi4uL2hlbHBlcnNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIEludGVyY2VwdG9ycyhcbiAgICAuLi5pbnRlcmNlcHRvcnM6IChJbnRlcmNlcHRvckludGVyZmFjZSB8IEZ1bmN0aW9uKVtdXG4pOiBNZXRob2REZWNvcmF0b3IgJiBDbGFzc0RlY29yYXRvciB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgdGFyZ2V0OiBhbnksXG4gICAgICAgIGtleT86IHN0cmluZyB8IHN5bWJvbCxcbiAgICAgICAgZGVzY3JpcHRvcj86IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPGFueT4sXG4gICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzSW50ZXJjZXB0b3JWYWxpZCA9IDxUIGV4dGVuZHMgRnVuY3Rpb24gfCBSZWNvcmQ8c3RyaW5nLCBhbnk+PihcbiAgICAgICAgICAgIGludGVyY2VwdG9yOiBULFxuICAgICAgICApID0+XG4gICAgICAgICAgICBpbnRlcmNlcHRvciAmJlxuICAgICAgICAgICAgKGlzRnVuY3Rpb24oaW50ZXJjZXB0b3IpIHx8XG4gICAgICAgICAgICAgICAgaXNGdW5jdGlvbigoaW50ZXJjZXB0b3IgYXMgUmVjb3JkPHN0cmluZywgYW55PikuaW50ZXJjZXB0KSk7XG5cbiAgICAgICAgaWYgKGRlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlRWFjaChcbiAgICAgICAgICAgICAgICB0YXJnZXQuY29uc3RydWN0b3IsXG4gICAgICAgICAgICAgICAgaW50ZXJjZXB0b3JzLFxuICAgICAgICAgICAgICAgIGlzSW50ZXJjZXB0b3JWYWxpZCxcbiAgICAgICAgICAgICAgICAnQEludGVyY2VwdG9ycycsXG4gICAgICAgICAgICAgICAgJ2ludGVyY2VwdG9yJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBleHRlbmRBcnJheU1ldGFkYXRhKFxuICAgICAgICAgICAgICAgIElOVEVSQ0VQVE9SU19NRVRBREFUQSxcbiAgICAgICAgICAgICAgICBpbnRlcmNlcHRvcnMsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvci52YWx1ZSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICAgICAgfVxuICAgICAgICB2YWxpZGF0ZUVhY2goXG4gICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICBpbnRlcmNlcHRvcnMsXG4gICAgICAgICAgICBpc0ludGVyY2VwdG9yVmFsaWQsXG4gICAgICAgICAgICAnQEludGVyY2VwdG9ycycsXG4gICAgICAgICAgICAnaW50ZXJjZXB0b3InLFxuICAgICAgICApO1xuICAgICAgICBleHRlbmRBcnJheU1ldGFkYXRhKElOVEVSQ0VQVE9SU19NRVRBREFUQSwgaW50ZXJjZXB0b3JzLCB0YXJnZXQpO1xuICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH07XG59XG4iXX0=