UNPKG

@tsclean/core

Version:

Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.

19 lines 3.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AccessResource = AccessResource; const helpers_1 = require("../helpers"); const utils_1 = require("../utils"); function AccessResource(...resources) { return (target, key, descriptor) => { const isAccessResourceValid = (resource) => resource && ((0, utils_1.isFunction)(resource) || (0, utils_1.isFunction)(resource.accessResource)); if (descriptor) { (0, utils_1.validateEach)(target.constructor, resources, isAccessResourceValid, '@AccessResource', 'resource'); (0, utils_1.extendArrayMetadata)(helpers_1.RESOURCES_METADATA, resources, descriptor.value); return descriptor; } (0, utils_1.validateEach)(target, resources, isAccessResourceValid, '@AccessResource', 'resource'); (0, utils_1.extendArrayMetadata)(helpers_1.RESOURCES_METADATA, resources, target); return target; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLXJlc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvcnMvYWNjZXNzLXJlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBSUEsd0NBOEJDO0FBbENELHdDQUE4QztBQUU5QyxvQ0FBdUU7QUFFdkUsU0FBZ0IsY0FBYyxDQUMxQixHQUFHLFNBQ3NDO0lBR3pDLE9BQU8sQ0FBQyxNQUFXLEVBQUUsR0FBcUIsRUFBRSxVQUF5QyxFQUFFLEVBQUU7UUFDckYsTUFBTSxxQkFBcUIsR0FBRyxDQUEyQyxRQUFXLEVBQUUsRUFBRSxDQUNwRixRQUFRLElBQUksQ0FBQyxJQUFBLGtCQUFVLEVBQUMsUUFBUSxDQUFDLElBQUksSUFBQSxrQkFBVSxFQUFFLFFBQWdDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUV2RyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2IsSUFBQSxvQkFBWSxFQUNSLE1BQU0sQ0FBQyxXQUFXLEVBQ2xCLFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLFVBQVUsQ0FDYixDQUFDO1lBQ0YsSUFBQSwyQkFBbUIsRUFBQyw0QkFBa0IsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JFLE9BQU8sVUFBVSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFBLG9CQUFZLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLFVBQVUsQ0FDYixDQUFDO1FBQ0YsSUFBQSwyQkFBbUIsRUFBQyw0QkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UkVTT1VSQ0VTX01FVEFEQVRBfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCB7QWNjZXNzUmVzb3VyY2VJbnRlcmZhY2V9IGZyb20gJy4uL2NvbnRyYWN0cyc7XG5pbXBvcnQge2V4dGVuZEFycmF5TWV0YWRhdGEsIGlzRnVuY3Rpb24sIHZhbGlkYXRlRWFjaH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gQWNjZXNzUmVzb3VyY2UoXG4gICAgLi4ucmVzb3VyY2VzOiAoXG4gICAgICAgIEFjY2Vzc1Jlc291cmNlSW50ZXJmYWNlIHwgRnVuY3Rpb24pW11cbik6IE1ldGhvZERlY29yYXRvciAmIENsYXNzRGVjb3JhdG9yIHtcblxuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIGtleT86IHN0cmluZyB8IHN5bWJvbCwgZGVzY3JpcHRvcj86IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPGFueT4pID0+IHtcbiAgICAgICAgY29uc3QgaXNBY2Nlc3NSZXNvdXJjZVZhbGlkID0gPFQgZXh0ZW5kcyBGdW5jdGlvbiB8IFJlY29yZDxzdHJpbmcsIGFueT4+KHJlc291cmNlOiBUKSA9PlxuICAgICAgICAgICAgcmVzb3VyY2UgJiYgKGlzRnVuY3Rpb24ocmVzb3VyY2UpIHx8IGlzRnVuY3Rpb24oKHJlc291cmNlIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pLmFjY2Vzc1Jlc291cmNlKSk7XG5cbiAgICAgICAgaWYgKGRlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlRWFjaChcbiAgICAgICAgICAgICAgICB0YXJnZXQuY29uc3RydWN0b3IsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VzLFxuICAgICAgICAgICAgICAgIGlzQWNjZXNzUmVzb3VyY2VWYWxpZCxcbiAgICAgICAgICAgICAgICAnQEFjY2Vzc1Jlc291cmNlJyxcbiAgICAgICAgICAgICAgICAncmVzb3VyY2UnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZXh0ZW5kQXJyYXlNZXRhZGF0YShSRVNPVVJDRVNfTUVUQURBVEEsIHJlc291cmNlcywgZGVzY3JpcHRvci52YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICAgICAgfVxuICAgICAgICB2YWxpZGF0ZUVhY2goXG4gICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICByZXNvdXJjZXMsXG4gICAgICAgICAgICBpc0FjY2Vzc1Jlc291cmNlVmFsaWQsXG4gICAgICAgICAgICAnQEFjY2Vzc1Jlc291cmNlJyxcbiAgICAgICAgICAgICdyZXNvdXJjZSdcbiAgICAgICAgKTtcbiAgICAgICAgZXh0ZW5kQXJyYXlNZXRhZGF0YShSRVNPVVJDRVNfTUVUQURBVEEsIHJlc291cmNlcywgdGFyZ2V0KTtcbiAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9O1xufVxuIl19