const modLib = (function() {
+ let appState = {};
+ let fs = require('fs');
+ let path = require('path');
+ let reader = require('readline');
+
return {
-
+
+ createFileStream: function(filePath){
+ return reader.createInterface({
+ input: fs.createReadStream(filePath)
+ });
+ },
+
editFile: function(reader,mod){
reader.on("line",function(line){
+
console.log(line)
})
},
+
setModules: function(modType,modName){
appState[modType] = modName;
return appState;
},
+
storeModules: function(appState){
localStorage.setItem("app", JSON.stringify(appState));
},
+
getModuleTypes: function(modules){
return Object.keys(modules)
},
+
getModules: function(){
return JSON.parse(localStorage.getItem("app"));
},
+
updateModule: function(appState){
let allMods = modLib.getModules();
allMods[appState.modType].forEach(function(mod, index){
})
localStorage.setItem("app", JSON.stringify(allMods));
},
+
getModuleByName: function(modName){
let mods = JSON.parse(localStorage.getItem("app")), newMods = [];
for(modType in mods){
let appState = JSON.parse(localStorage.getItem("app"));
return appState[moduleType];
},
+
getDevDirs: function(){
- let fullPath = path.join(__dirname, `../dev`);
+ let fullPath = require('path').join(__dirname, `../dev`);
fs.readdir(fullPath, function(err, item) {
- console.log(item)
+
});
},
+
generateListItems: function(modType){
$(`<h2 id="${modType}-title">${modType} </h2>`).appendTo( $("#module-list-container"));
$(`<ul class="module-list" id="${modType}-modules" />`).insertAfter( $(`#${modType}-title`));
}).appendTo( $(`#${modType}-modules`) );
})
},
+
buildList: function(modType){
if(modType){
modLib.generateListItems(modType)
})
}
},
+
scanDevDir: function(){
if(modLib.getModules() === null){
['dev/core', 'dev/custom'].forEach(function(dirPath) {
let modType = dirPath.stringFromToken('after', "/");
- let fullPath = path.join(__dirname, `../${dirPath}`);
+ let fullPath = require('path').join(__dirname, `../${dirPath}`);
let mods = [];
fs.readdir(fullPath, function(err, item) {
item.forEach(function(modName){
});
});
modLib.storeModules(modLib.setModules(modType,mods));
- console.log(modType)
modLib.buildList(modType);
});
})
-const path = require('path');
-const fs = require('fs');
const merge = require('merge-stream');
const dir = require('node-dir');
-const appState = {};
const lib = require('./moduleLib');
-var file = require('readline');
-
-function fileReader(filePath){
- return file.createInterface({
- input: require('fs').createReadStream(filePath)
- });
-}
-// Sass File Imports index file
-var sassReader = require('readline').createInterface({
- input: require('fs').createReadStream('dev/app.scss')
-});
String.prototype.stringFromToken = function(position, token, lastToken = false, string = false){
let length = 1;
if(string) length = token.length;
thisModule.active = true;
}
lib.updateModule(thisModule)
- lib.editFile(fileReader('dev/app.scss'), thisModule)
+ lib.editFile(lib.createFileStream('dev/app.scss'), thisModule)
});
lib.scanDevDir();
\ No newline at end of file