@tsclean/core
Version:
Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.
20 lines • 3.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Inject = Inject;
const helpers_1 = require("../helpers");
const isUndefined = (obj) => typeof obj === 'undefined';
function Inject(token) {
return (target, key, index) => {
const type = token || Reflect.getMetadata('design:type', target, key);
if (!isUndefined(index)) {
let dependencies = Reflect.getMetadata(helpers_1.SELF_DECLARED_DEPS_METADATA, target) || [];
dependencies = [...dependencies, { index, param: type }];
Reflect.defineMetadata(helpers_1.SELF_DECLARED_DEPS_METADATA, dependencies, target);
return;
}
let properties = Reflect.getMetadata(helpers_1.PROPERTY_DEPS_METADATA, target.constructor) || [];
properties = [...properties, { key, type }];
Reflect.defineMetadata(helpers_1.PROPERTY_DEPS_METADATA, properties, target.constructor);
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvcnMvaW5qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esd0JBcUJDO0FBNUJELHdDQUdvQjtBQUVwQixNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVEsRUFBb0IsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLFdBQVcsQ0FBQztBQUUvRSxTQUFnQixNQUFNLENBQVUsS0FBUztJQUN2QyxPQUFPLENBQUMsTUFBYyxFQUFFLEdBQW9CLEVBQUUsS0FBYyxFQUFFLEVBQUU7UUFDOUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsSUFBSSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxxQ0FBMkIsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFbEYsWUFBWSxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDekQsT0FBTyxDQUFDLGNBQWMsQ0FBQyxxQ0FBMkIsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUUsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLFVBQVUsR0FDWixPQUFPLENBQUMsV0FBVyxDQUFDLGdDQUFzQixFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEUsVUFBVSxHQUFHLENBQUMsR0FBRyxVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxPQUFPLENBQUMsY0FBYyxDQUNwQixnQ0FBc0IsRUFDdEIsVUFBVSxFQUNWLE1BQU0sQ0FBQyxXQUFXLENBQ25CLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUFJPUEVSVFlfREVQU19NRVRBREFUQSxcbiAgU0VMRl9ERUNMQVJFRF9ERVBTX01FVEFEQVRBLFxufSBmcm9tICcuLi9oZWxwZXJzJztcblxuY29uc3QgaXNVbmRlZmluZWQgPSAob2JqOiBhbnkpOiBvYmogaXMgdW5kZWZpbmVkID0+IHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnO1xuXG5leHBvcnQgZnVuY3Rpb24gSW5qZWN0PFQgPSBhbnk+KHRva2VuPzogVCkge1xuICByZXR1cm4gKHRhcmdldDogb2JqZWN0LCBrZXk6IHN0cmluZyB8IHN5bWJvbCwgaW5kZXg/OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCB0eXBlID0gdG9rZW4gfHwgUmVmbGVjdC5nZXRNZXRhZGF0YSgnZGVzaWduOnR5cGUnLCB0YXJnZXQsIGtleSk7XG5cbiAgICBpZiAoIWlzVW5kZWZpbmVkKGluZGV4KSkge1xuICAgICAgbGV0IGRlcGVuZGVuY2llcyA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoU0VMRl9ERUNMQVJFRF9ERVBTX01FVEFEQVRBLCB0YXJnZXQpIHx8IFtdO1xuXG4gICAgICBkZXBlbmRlbmNpZXMgPSBbLi4uZGVwZW5kZW5jaWVzLCB7IGluZGV4LCBwYXJhbTogdHlwZSB9XTtcbiAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoU0VMRl9ERUNMQVJFRF9ERVBTX01FVEFEQVRBLCBkZXBlbmRlbmNpZXMsIHRhcmdldCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBwcm9wZXJ0aWVzID1cbiAgICAgIFJlZmxlY3QuZ2V0TWV0YWRhdGEoUFJPUEVSVFlfREVQU19NRVRBREFUQSwgdGFyZ2V0LmNvbnN0cnVjdG9yKSB8fCBbXTtcblxuICAgIHByb3BlcnRpZXMgPSBbLi4ucHJvcGVydGllcywgeyBrZXksIHR5cGUgfV07XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFBST1BFUlRZX0RFUFNfTUVUQURBVEEsXG4gICAgICBwcm9wZXJ0aWVzLFxuICAgICAgdGFyZ2V0LmNvbnN0cnVjdG9yLFxuICAgICk7XG4gIH07XG59XG4iXX0=