node-dependency-injection
Version:
The NodeDependencyInjection component allows you to standardize and centralize the way objects are constructed in your application.
1 lines • 5 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _Reference=_interopRequireDefault(require("../Reference"));function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=_unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var _n=0,F=function F(){};return{s:F,n:function n(){return _n>=r.length?{done:!0}:{done:!1,value:r[_n++]};},e:function e(r){throw r;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var o,a=!0,u=!1;return{s:function s(){t=t.call(r);},n:function n(){var r=t.next();return a=r.done,r;},e:function e(r){u=!0,o=r;},f:function f(){try{a||null==t["return"]||t["return"]();}finally{if(u)throw o;}}};}function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return _arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?_arrayLikeToArray(r,a):void 0;}}function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n;}var AutowireOverridePass=exports["default"]=function(){function AutowireOverridePass(){(0,_classCallCheck2["default"])(this,AutowireOverridePass);}return(0,_createClass2["default"])(AutowireOverridePass,[{key:"process",value:function process(container){this._container=container;this._definitions=container.instanceManager.definitions;this._classNameIndex=new Map();var _iterator=_createForOfIteratorHelper(this._definitions),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var _definition$Object;var _step$value=(0,_slicedToArray2["default"])(_step.value,2),key=_step$value[0],definition=_step$value[1];var name=(_definition$Object=definition.Object)===null||_definition$Object===void 0?void 0:_definition$Object.name;if(name){if(!this._classNameIndex.has(name)){this._classNameIndex.set(name,[]);}this._classNameIndex.get(name).push({key:key,definition:definition});}}}catch(err){_iterator.e(err);}finally{_iterator.f();}var overrideDefinitions=container.instanceManager.searchDefinitionsToOverrideArgs();var toDelete=[];var _iterator2=_createForOfIteratorHelper(overrideDefinitions),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var _step2$value=(0,_slicedToArray2["default"])(_step2.value,2),_key=_step2$value[0],definitionToOverride=_step2$value[1];toDelete.push(_key);this._processOverride(definitionToOverride,container);}}catch(err){_iterator2.e(err);}finally{_iterator2.f();}this._removeDefinitions(toDelete);}},{key:"_processOverride",value:function _processOverride(definitionToOverride,container){var definitionsToOverride=container.instanceManager.searchNotOverrideDefinitionsByObject(definitionToOverride.Object);var referencesToOverride=[];var _iterator3=_createForOfIteratorHelper(definitionToOverride.overrideArgs),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var overrideArg=_step3.value;referencesToOverride.push.apply(referencesToOverride,(0,_toConsumableArray2["default"])(this._getReferencesForOverrideArg(overrideArg.id)));}}catch(err){_iterator3.e(err);}finally{_iterator3.f();}var _iterator4=_createForOfIteratorHelper(definitionsToOverride),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var _step4$value=(0,_slicedToArray2["default"])(_step4.value,2),definitionFromOverride=_step4$value[1];definitionFromOverride.args=referencesToOverride;}}catch(err){_iterator4.e(err);}finally{_iterator4.f();}}},{key:"_getReferencesForOverrideArg",value:function _getReferencesForOverrideArg(overrideArgId){var argumentsToOverride=this._searchDefinitionsByClassName(overrideArgId);return argumentsToOverride.map(function(arg){return new _Reference["default"](arg.key);});}},{key:"_searchDefinitionsByClassName",value:function _searchDefinitionsByClassName(className){var _this$_classNameIndex;return(_this$_classNameIndex=this._classNameIndex.get(className))!==null&&_this$_classNameIndex!==void 0?_this$_classNameIndex:[];}},{key:"_removeDefinitions",value:function _removeDefinitions(keysToDelete){var _iterator5=_createForOfIteratorHelper(keysToDelete),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var key=_step5.value;this._container.removeDefinition(key);}}catch(err){_iterator5.e(err);}finally{_iterator5.f();}}}]);}();