separating the functions into a lib file
authoranthony <astalarico@gmail.com>
Wed, 13 Jun 2018 02:02:46 +0000 (22:02 -0400)
committeranthony <astalarico@gmail.com>
Wed, 13 Jun 2018 02:02:46 +0000 (22:02 -0400)
setup/moduleLib.js [new file with mode: 0644]
setup/moduleSetup.js [deleted file]
setup/renderer.js
setup/tools.js [new file with mode: 0644]

diff --git a/setup/moduleLib.js b/setup/moduleLib.js
new file mode 100644 (file)
index 0000000..cd6659a
--- /dev/null
@@ -0,0 +1,98 @@
+const modLib = (function() {
+    return {
+        
+        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){
+                if(mod.name === appState.name){
+                    allMods[appState.modType][index] = appState;
+                }
+            })
+            localStorage.setItem("app", JSON.stringify(allMods));
+        },
+        getModuleByName: function(modName){
+            let mods = JSON.parse(localStorage.getItem("app")), newMods = [];
+            for(modType in mods){
+                newMods.push(modLib.getModulesByType(modType).filter(function(mod){
+                    return mod.name == modName;
+                }))
+            }
+            return newMods[0].concat(newMods[1])[0];
+        },
+        
+        // Returns an array of Modules
+        getModulesByType: function(moduleType){
+            let appState = JSON.parse(localStorage.getItem("app"));
+            return appState[moduleType];
+        },
+        getDevDirs: function(){
+            let fullPath = 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`));
+            modLib.getModulesByType(modType).forEach(function(mod){
+                $('<li>', {
+                    text        : mod.name,
+                    class       : `module-item module-active-${mod.active}`,
+                    id          : `${mod.name}-module`,
+                    "data-type" : modType
+                }).appendTo( $(`#${modType}-modules`) );
+            })
+        },
+        buildList: function(modType){
+            if(modType){
+                modLib.generateListItems(modType)
+            }else{
+                modLib.getModuleTypes(modLib.getModules()).forEach(function(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 mods = [];
+                    fs.readdir(fullPath, function(err, item) {
+                        item.forEach(function(modName){
+                            let reference = `${fullPath}/${modName}`.stringFromToken('after',"dev/", false, true);
+                            mods.push({
+                                name: modName, 
+                                modType: modType,
+                                active: true,
+                                path: `${fullPath}/${modName}`, 
+                                sass: `${reference}/${modName}`,
+                                functions: `${reference}/functions/${modName}.php`,
+                                reference:reference 
+                            });
+                        });
+                        modLib.storeModules(modLib.setModules(modType,mods));    
+                        console.log(modType)
+                        modLib.buildList(modType);
+                    });
+                })
+            }else{
+                modLib.buildList()
+            }
+        }
+    }
+})()
+module.exports = modLib;
\ No newline at end of file
diff --git a/setup/moduleSetup.js b/setup/moduleSetup.js
deleted file mode 100644 (file)
index e69de29..0000000
index 59e900c..dd6cca5 100644 (file)
@@ -3,6 +3,7 @@ const fs            = require('fs');
 const merge         = require('merge-stream');
 const dir           = require('node-dir');
 const appState      = {};
+const lib           = require('./moduleLib');
 
 // PHP Functions File Libraries index file
 var functionsFileReader = require('readline').createInterface({
@@ -31,103 +32,12 @@ String.prototype.stringFromToken = function(position, token, lastToken = false,
 String.prototype.stripSlashes = function(){
     return this.replace(/\\(.)/mg, "$1");
 }
-function setModules(modType,modName){
-    appState[modType] = modName;
-    return appState;
-}
-function storeModules(appState){
-    localStorage.setItem("app", JSON.stringify(appState));
-}
-function getModuleTypes(modules){
-    return Object.keys(modules)
-}
-function getModules(){
-    return JSON.parse(localStorage.getItem("app"));
-}
-function updateModule(appState){
-    let allMods = getModules();
-    allMods[appState.modType].forEach(function(mod, index){
-        if(mod.name === appState.name){
-            allMods[appState.modType][index] = appState;
-        }
-    })
-    localStorage.setItem("app", JSON.stringify(allMods));
-}
-function getModuleByName(modName){
-    let mods = JSON.parse(localStorage.getItem("app")), newMods = [];
-    for(modType in mods){
-        newMods.push(getModulesByType(modType).filter(function(mod){
-            return mod.name == modName;
-        }))
-    }
-    return newMods[0].concat(newMods[1])[0];
-}
 
-// Returns an array of Modules
-function getModulesByType(moduleType){
-    let appState = JSON.parse(localStorage.getItem("app"));
-    return appState[moduleType];
-}
-function getDevDirs(){
-    let fullPath = path.join(__dirname, `../dev`);
-    fs.readdir(fullPath, function(err, item) {
-       console.log(item)
-    });
-}
-function generateListItems(modType){
-    $(`<h2 id="${modType}-title">${modType} </h2>`).appendTo( $("#module-list-container"));
-    $(`<ul class="module-list" id="${modType}-modules" />`).insertAfter( $(`#${modType}-title`));
-    getModulesByType(modType).forEach(function(mod){
-        $('<li>', {
-            text        : mod.name,
-            class       : `module-item module-active-${mod.active}`,
-            id          : `${mod.name}-module`,
-            "data-type" : modType
-        }).appendTo( $(`#${modType}-modules`) );
-    })
-}
-function buildList(modType){
-    if(modType){
-        generateListItems(modType)
-    }else{
-        getModuleTypes(getModules()).forEach(function(modType){
-            generateListItems(modType);
-        })
-    }    
-}
-function scanDevDir(){
-    if(getModules() === null){
-        ['dev/core', 'dev/custom'].forEach(function(dirPath) {
-            let modType = dirPath.stringFromToken('after', "/");
-            let fullPath = path.join(__dirname, `../${dirPath}`);
-            let mods = [];
-            fs.readdir(fullPath, function(err, item) {
-                item.forEach(function(modName){
-                    let reference = `${fullPath}/${modName}`.stringFromToken('after',"dev/", false, true);
-                    mods.push({
-                        name: modName, 
-                        modType: modType,
-                        active: true,
-                        path: `${fullPath}/${modName}`, 
-                        sass: `${reference}/${modName}`,
-                        functions: `${reference}/functions/${modName}.php`,
-                        reference:reference 
-                    });
-                });
-                storeModules(setModules(modType,mods));    
-                console.log(modType)
-                buildList(modType);
-            });
-        })
-    }else{
-        buildList()
-    }
-}
 $(document).on("click", '.module-item', function(){
     _ = $(this);
     let modName     = _.attr('id').stringFromToken('before', '-', true);
     let modType    = _.data('type');
-    let thisModule  = getModuleByName(modName);
+    let thisModule  = lib.getModuleByName(modName);
     if( _.hasClass('module-active-true') ){
         _.removeClass('module-active-true');
         _.addClass("module-active-false");
@@ -137,6 +47,6 @@ $(document).on("click", '.module-item', function(){
         _.removeClass("module-active-false");
         thisModule.active = true;
     }
-    updateModule(thisModule)
+    lib.updateModule(thisModule)
 });
-scanDevDir();
\ No newline at end of file
+lib.scanDevDir();
\ No newline at end of file
diff --git a/setup/tools.js b/setup/tools.js
new file mode 100644 (file)
index 0000000..e69de29