nralcm
Version:
This is a framework based on NodeJs to manage rest api request lifecycle
27 lines (26 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const _1 = require(".");
require("reflect-metadata/Reflect");
/**
* Method to inject dependency
* @param target target objectto inject dependency
* @param source source object which will hold dependency object
*/
function circularInjection(target, source) {
const constructorParameters = _1.getConstructorParameters(target);
if (constructorParameters && constructorParameters.length > 0) {
const constructorParameterTypes = Reflect.getMetadata("design:paramtypes", target);
if (constructorParameterTypes && constructorParameterTypes.length === constructorParameters.length) {
if (constructorParameterTypes && constructorParameterTypes.length > 0) {
constructorParameterTypes.forEach((val, index) => {
source[constructorParameters[index]] = new val();
});
}
}
else if (constructorParameters.length !== 0) {
throw new Error("Unable to resolve dependency. Use Repository decorator to inject dependecy in " + target.name);
}
}
}
exports.circularInjection = circularInjection;