////////////////////////////////////////////////////////////////////// // CConfig function CConfig(px){ const usemap={}; function isDisabled(obj){ if(!obj){return true;} return(("disabled" in obj)&&(obj.disabled)); }; function set(extname,cfg){ usemap[extname]=cfg?cfg:{}; }; function get(extname){ return usemap[extname]; }; function exists(extname){ return (extname in usemap); }; function getUsemap(){ return usemap; }; function getExtensionList(cfg,codebase){ // overwrite cfg of each component with global cfg for(const extname in cfg){ if(extname in usemap){ usemap[extname]=cfg[extname]; } } // list up the extensions used in this instance const ls=[] for(const extname in usemap){ const rec=codebase[extname]; if(!rec){ console.log("No code found for "+extname); }else{ ls.push({extname,runidx:rec.runidx}); } } // sort the extensions by runidx return ls.sort((a,b)=>a.runidx-b.runidx); }; return{ set, get, exists, getUsemap, getExtensionList, isDisabled, }; };