var fs = require('fs'); var obj =[]; try{ obj = JSON.parse(fs.readFileSync(process.argv[2], 'utf8')); }catch(err){ } var dirPath=process.argv[3]; console.log(dirPath); function getID() { return (1+Math.random()*4294967295).toString(16); } var filteredArray = obj.filter(function(itm){ return itm.type == 'tab' ; }); var tabsArr=filteredArray; var files = fs.readdirSync(dirPath); for (var i in files) { var currentFile = dirPath + '/' + files[i]; //console.log(currentFile); var stats = fs.statSync(currentFile); try{ if (stats.isFile()) { var moduleName=""; var methodName=""; console.log("processing... " + currentFile); var o = JSON.parse(fs.readFileSync(currentFile, 'utf8')); for(var idx in o){ if(o[idx].type == "service-logic"){ moduleName=o[idx].name; } if(o[idx].type == "method"){ methodName=o[idx].name; methodName = methodName.replace("method ",""); } if(moduleName != "" && methodName != ""){ break; } } var id = o[0].z; //console.log("tab id:" + id); var newId = id; var number_of_tabs = 0; if(filteredArray != null ){ number_of_tabs = filteredArray.length; } //console.log("number_of_tabs:" + number_of_tabs); //console.log("id:" + id); if(filteredArray != null && filteredArray.length > 0){ for(var i in filteredArray){ if(filteredArray[i].id == id){ newId = getID(); console.log("Using new id:" + newId); } } for(var idx in o){ o[idx].z= newId; var oldNodeId = o[idx].id; var newNodeId = getID(); o[idx].id= newNodeId; for(var k=0;k<o.length;k++){ if(o[k] != null && o[k].wires != undefined && o[k].wires != null){ for(var j=0;o[k].wires[0] != null && j< o[k].wires[0].length;j++){ if(o[k].wires[0][j] == oldNodeId){ o[k].wires[0][j]=newNodeId; } } } } } } //"label": "Sheet " + (number_of_tabs + 1), var tabObj= { "id": newId, "label": methodName, "type": "tab" }; filteredArray.push(tabObj); obj.unshift(tabObj); for(var idx in o){ obj.push(o[idx]); } //console.dir(obj); } }catch(err){ console.log(err); } }; function getCurrentDate(){ var d = new Date(); var mm = d.getMonth() + 1; var dd = d.getDate(); var yyyy = d.getYear() + 1900; var hr = d.getHours(); var min = d.getMinutes(); var sec = d.getSeconds(); if(mm<10) mm = "0" + mm; if(dd<10) dd = "0" + dd; if(hr<10) hr = "0" + hr; if(min<10) min = "0" + min; if(sec<10) sec = "0" + sec; var formatedValue = mm + "-" + dd + "-" + yyyy + "_" + hr + "" + min + "" + sec; return formatedValue; } if (fs.existsSync(process.argv[2])) { fs.renameSync(process.argv[2],process.argv[2]+ "_" + getCurrentDate()); } fs.writeFileSync( process.argv[2] + ".new", JSON.stringify(obj)); if (fs.existsSync(process.argv[2] + ".new")) { fs.renameSync(process.argv[2] + ".new",process.argv[2]); }