//////////////////////////////////////////////////////////////////////
// CApp
// CLib: common function libraray
Warning: include(include/CLib.inc.php): Failed to open stream: No such file or directory in /var/www/html/phpkobo/my-projects/sliding-puzzle/include/CApp.inc.php on line 5
Warning: include(): Failed opening 'include/CLib.inc.php' for inclusion (include_path='.:/usr/local/lib/php') in /var/www/html/phpkobo/my-projects/sliding-puzzle/include/CApp.inc.php on line 5
// CConfig
Warning: include(include/CConfig.inc.php): Failed to open stream: No such file or directory in /var/www/html/phpkobo/my-projects/sliding-puzzle/include/CApp.inc.php on line 7
Warning: include(): Failed opening 'include/CConfig.inc.php' for inclusion (include_path='.:/usr/local/lib/php') in /var/www/html/phpkobo/my-projects/sliding-puzzle/include/CApp.inc.php on line 7
// CInsta
Warning: include(include/CInsta.inc.php): Failed to open stream: No such file or directory in /var/www/html/phpkobo/my-projects/sliding-puzzle/include/CApp.inc.php on line 9
Warning: include(): Failed opening 'include/CInsta.inc.php' for inclusion (include_path='.:/usr/local/lib/php') in /var/www/html/phpkobo/my-projects/sliding-puzzle/include/CApp.inc.php on line 9
const App=(function(appname){
// store code by name
const codebase={};
const Lib=CLib();
// insta object pointer
let Insta=null;
///////////////////////////////////////////////
// getAppName
function getAppName(){
return appname;
};
///////////////////////////////////////////////
// checkDependency
function checkDependency(extname,depends,b_verbose){
function err(msg){
if((b_verbose!==undefined)?b_verbose:true){
const errmsg=`[Dependency Error] ${msg}`;
console.log(errmsg);
}
};
if(!(extname in codebase)){
err(`'${extname}' does not exist in codebase`);
return false;
}else if(extname!="main"){
const runidx_ref=codebase[extname].runidx;
if(runidx_ref<=0){
err(`${extname}:runidx(${runidx_ref}) is not larger than 0`);
}
if(depends){
for(let i=0;i=runidx_ref){
err(`'${extname}' requires '${ext}' but `+
`${extname}:runidx(${runidx_ref}) `+
`comes before `+
`${ext}:runidx(${rec.runidx})`
);
return false;
}
}
}
}
return true;
};
///////////////////////////////////////////////
// export 4 functions to outside
// _begin
// _extension
// _use
// _end
function _begin(cfg){
Insta=CInsta({
App,
Lib,
Extel:{el_begin:document.currentScript},
});
};
function _extension(extname,func,runidx,depends){
if(!(extname in codebase)){
codebase[extname]={func,runidx,depends};
}
};
function _use(extname,cfg){
Insta.Config.set(extname,cfg);
};
function _end(cfg){
// set el_end to Insta
Insta.Extel.el_end=document.currentScript;
// get cfg for main
const cfg_main=cfg.main?cfg.main:{};
// set cid to Insta if available
if(cfg_main.cid){Insta.cid=cfg_main.cid;}
// use the main compnent
_use("main");
// get extension list
const extensions=Insta.Config.getExtensionList(cfg,codebase);
// set the result to Insta
Insta.extensions=extensions;
// initialize each extension
for(let i=0;i
Warning: include(include/main.inc.php): Failed to open stream: No such file or directory in /var/www/html/phpkobo/my-projects/sliding-puzzle/include/CApp.inc.php on line 137
Warning: include(): Failed opening 'include/main.inc.php' for inclusion (include_path='.:/usr/local/lib/php') in /var/www/html/phpkobo/my-projects/sliding-puzzle/include/CApp.inc.php on line 137
// return
return{
getAppName,
checkDependency,
}
})(appname);