blinx
Version:
The Scalable JavaScript Application Framework
61 lines (57 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
/**
* Created by anoof.shaikh on 03/01/17.
*/
var attachListener = function attachListener(moduleObject) {
document.addEventListener("content-script-to-blinx", function (event) {
var message;
var moduleData = function moduleData() {
var returnObject = [];
//var objectToParse = _store.moduleS;
var objectToParse = moduleObject();
objectToParse.forEach(function (module, moduleIndex) {
var subModulesArray = function subModulesArray(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);
});
};
exports.default = {
attachListener: attachListener
};