Source: devtool.js

/**
 * Created by anoof.shaikh on 03/01/17.
 */

var attachListener = function(moduleObject){
	document.addEventListener("content-script-to-blinx", function(event){
		var message;
		var moduleData = function(){
			var returnObject = [];
			//var objectToParse = _store.moduleS;
			var objectToParse = moduleObject();
			objectToParse.forEach(function(module, moduleIndex){
				var subModulesArray = function(thisModule){
					if(!thisModule.config || !thisModule.config.modules)
						return [];
					else{
						var returnArr = [];
						thisModule.config.modules.forEach(function(subModule,subModuleIndex){
							returnArr.push({"moduleName": subModule.moduleName,
								"moduleConfig": {
									"container":subModule.instanceConfig.container,
									"listensTo":subModule.instanceConfig.listensTo,
									"placeholders":JSON.stringify(subModule.instanceConfig.placeholders)
								},
								"subModules": subModulesArray(subModule),
								"moduleInstanceConfig": JSON.stringify(subModule.instanceConfig)});
						});
						return returnArr;
					}
				};
				var moduleObj = {
					"moduleName":module.moduleName,
					"moduleConfig":{
						"container":module.instanceConfig.container,
						"listensTo":module.instanceConfig.listensTo,
						"placeholders":JSON.stringify(module.instanceConfig.placeholders)
					},
					"subModules": subModulesArray(module),
					"moduleInstanceConfig": JSON.stringify(module.instanceConfig)
				};
				returnObject.push(moduleObj);
			});
			return returnObject;
		};

		switch(event.detail.eventId){
			case "GET_MODULES":
				message = {"eventId":"GET_MODULES_REPONSE", "data":moduleData()};
				break;
		}
		var event = new CustomEvent("blinx-to-content-script", { bubbles: true, detail: message });
		document.dispatchEvent(event);
	});
};

export default{
	attachListener
};