node-dependency-injection
Version:
The NodeDependencyInjection component allows you to standardize and centralize the way objects are constructed in your application.
1 lines • 6.35 kB
JavaScript
;var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _path=_interopRequireDefault(require("path"));var _ServiceFileNotAbsolute=_interopRequireDefault(require("./Exception/ServiceFileNotAbsolute"));var _ServiceFileNotValidExtension=_interopRequireDefault(require("./Exception/ServiceFileNotValidExtension"));var _YamlDumper=_interopRequireDefault(require("./Dump/YamlDumper"));var _JsonDumper=_interopRequireDefault(require("./Dump/JsonDumper"));var _JsDumper=_interopRequireDefault(require("./Dump/JsDumper"));var _XmlDumper=_interopRequireDefault(require("./Dump/XmlDumper"));var _AutowireIdentifier=_interopRequireDefault(require("./AutowireIdentifier"));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 ServiceFile=exports["default"]=function(){function ServiceFile(servicesDumpPath){var absolutePath=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;(0,_classCallCheck2["default"])(this,ServiceFile);this.validExtensions=['.yaml','.yml','.json','.js','.xml'];this._ensureAbsolutePathIsValid(servicesDumpPath);this._servicesDumpPath=servicesDumpPath;this._absolutePath=absolutePath;this._content={services:{}};}return(0,_createClass2["default"])(ServiceFile,[{key:"_dumper",get:function get(){var parsed=_path["default"].parse(this._servicesDumpPath);if(['.yaml','.yml'].includes(parsed.ext)){return new _YamlDumper["default"](this._servicesDumpPath,this._content);}if(['.json'].includes(parsed.ext)){return new _JsonDumper["default"](this._servicesDumpPath,this._content);}if(['.js'].includes(parsed.ext)){return new _JsDumper["default"](this._servicesDumpPath,this._content);}if(['.xml'].includes(parsed.ext)){return new _XmlDumper["default"](this._servicesDumpPath,this._content);}}},{key:"_ensureAbsolutePathIsValid",value:function _ensureAbsolutePathIsValid(absolutePath){if(_path["default"].isAbsolute(absolutePath)===false){throw new _ServiceFileNotAbsolute["default"](absolutePath);}var parsed=_path["default"].parse(absolutePath);if(this.validExtensions.includes(parsed.ext)===false){throw new _ServiceFileNotValidExtension["default"](absolutePath);}}},{key:"generateFromContainer",value:(function(){var _generateFromContainer=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(container){var _iterator,_step,_step$value,id,definition,_iterator2,_step2,_step2$value,_id,reference;return _regenerator["default"].wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_iterator=_createForOfIteratorHelper(container.definitions);try{for(_iterator.s();!(_step=_iterator.n()).done;){_step$value=(0,_slicedToArray2["default"])(_step.value,2),id=_step$value[0],definition=_step$value[1];this._appendServicesToContent(id,definition,container.defaultDir);}}catch(err){_iterator.e(err);}finally{_iterator.f();}_iterator2=_createForOfIteratorHelper(container._alias);try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){_step2$value=(0,_slicedToArray2["default"])(_step2.value,2),_id=_step2$value[0],reference=_step2$value[1];this._content.services[_id]="@".concat(reference);}}catch(err){_iterator2.e(err);}finally{_iterator2.f();}_context.next=6;return this._dumper.dump();case 6:case"end":return _context.stop();}},_callee,this);}));function generateFromContainer(_x){return _generateFromContainer.apply(this,arguments);}return generateFromContainer;}())},{key:"_appendServicesToContent",value:function _appendServicesToContent(id,definition){var defaultDir=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var classPath=this._getClassPath(id,definition,defaultDir);var args=[];var _iterator3=_createForOfIteratorHelper(definition.args),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var reference=_step3.value;args.push("@".concat(reference.id));}}catch(err){_iterator3.e(err);}finally{_iterator3.f();}var _iterator4=_createForOfIteratorHelper(definition.appendArgs),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var appendReference=_step4.value;args.push("@".concat(appendReference.id));}}catch(err){_iterator4.e(err);}finally{_iterator4.f();}this._content.services[id]={"class":classPath,arguments:args,"abstract":definition["abstract"],parent:definition.parent};}},{key:"_getClassPath",value:function _getClassPath(id,definition){var defaultDir=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var classPath=_AutowireIdentifier["default"].decode(id).replace(/__/g,'/');var position=classPath.lastIndexOf("/".concat(definition._Object.name));classPath=classPath.substring(0,position);if(this._absolutePath===false&&defaultDir){return classPath.replace(defaultDir,'');}return classPath;}}]);}();