UNPKG

inceptum

Version:

hipages take on the foundational library for enterprise-grade apps written in NodeJS

69 lines 3.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ObjectDefinitionAutowiringInspector = void 0; const BaseSingletonDefinition_1 = require("../objectdefinition/BaseSingletonDefinition"); const AbstractObjectDefinitionInspector_1 = require("../AbstractObjectDefinitionInspector"); class ObjectDefinitionAutowiringInspector extends AbstractObjectDefinitionInspector_1.AbstractObjectDefinitionInspector { static getAutowired(objectDefinition) { return objectDefinition.getProducedClass().hasOwnProperty('autowire') ? (objectDefinition.getProducedClass()).autowire : undefined; } // tslint:disable-next-line:prefer-function-over-method interestedIn(objectDefinition) { if (!(objectDefinition instanceof BaseSingletonDefinition_1.BaseSingletonDefinition)) { return false; } return ObjectDefinitionAutowiringInspector.getAutowired(objectDefinition) !== undefined; } /** * @param {BaseSingletonDefinition} objectDefinition singleton definition */ // tslint:disable-next-line:prefer-function-over-method doInspect(objectDefinition) { const autowire = ObjectDefinitionAutowiringInspector.getAutowired(objectDefinition); if (autowire.constructorArgs) { autowire.constructorArgs.forEach((val) => { switch (val.substr(0, 1)) { case '~': objectDefinition.constructorParamByType(val.substr(1)); break; case '*': objectDefinition.constructorParamByTypeArray(val.substr(1)); break; case '#': objectDefinition.constructorParamByConfig(val.substr(1)); break; default: // By Name objectDefinition.constructorParamByRef(val); } }); } Object.keys(autowire).filter((key) => key !== 'constructorArgs').forEach((key) => { const val = autowire[key]; switch (val.substr(0, 1)) { case '~': objectDefinition.setPropertyByType(key, val.substr(1)); break; case '*': objectDefinition.setPropertyByTypeArray(key, val.substr(1)); break; case '#': const configKey = val.substr(1); if (configKey.indexOf(':') > 0) { const parts = configKey.split(':', 2); objectDefinition.setPropertyByConfig(key, parts[0], parts[1]); } else { objectDefinition.setPropertyByConfig(key, configKey); } break; default: // By Name objectDefinition.setPropertyByRef(key, val); } }); } } exports.ObjectDefinitionAutowiringInspector = ObjectDefinitionAutowiringInspector; //# sourceMappingURL=ObjectDefinitionAutowiringInspector.js.map