ng-make
Version:
Easy tools for create project in AngularJS
80 lines (55 loc) • 1.75 kB
JavaScript
var stringNEWSTATE = "//%NEW_STATE";
var stringDEFAULT ="//%DEFAULT_STATE";
exports.loadState = function(fs){
var ret = fs.existsSync("./state.json");
if(ret){
return JSON.parse(fs.readFileSync('./state.json', 'utf8'));
}else{
return ret;
}
}
exports.saveState = function(fs,state){
fs.open("./state.json",'w+',function(err,fd){
fs.write(fd,JSON.stringify(state));
})
}
exports.createNewState = function(fs,stateData,config,isAbstract,defaultState){
var file = fs.readFileSync('settings/config.routes.js','utf8');
//console.log(file);
var str = file.replace(stringNEWSTATE,genStateApp(stateData,isAbstract));
if(defaultState){
str = str.replace(stringDEFAULT,genDefaultState(stateData));
}
fs.open("settings/config.routes.js",'w+',function(err,fd){
fs.write(fd,str);
})
}
exports.updateControllerFile = function(usageModule,fs,states){
//TEST
states.forEach(function(val,id){
if(id!=0){
var file = fs.readFileSync("js/" + val.name + "CTRL.js", "utf8");
if (usageModule) {
file = file.replace("$scope", "$scope," + usageModule);
} else {
}
fs.open("js/"+val.name+"CTRL.js","w+",function(err,fd){
fs.write(fd,file);
});
}
})
}
function genDefaultState(stateData){
var jsDefault ="$urlRouterProvider.otherwise("+stateData.url+");\n";
return jsDefault
}
function genStateApp(state,isAbstract){
var statejs = ".state('"+state.name+"',{\n\t\t\t\t\turl:"+state.url+
",\n\t\t\t\t\ttemplateUrl:"+state.templateUrl+
",\n\t\t\t\t\tcontroller:"+state.controller+""
if(isAbstract){
statejs+=",\n\t\t\t\t\tabstract:true";
}
statejs += "\n\t\t\t\t}\n\t\t\t)\n\t\t\t"+stringNEWSTATE+"\n";
return statejs;
}