UNPKG

@tsclean/core

Version:

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

20 lines 3.51 kB
"use strict"; 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=