UNPKG

generator-aristos

Version:

create aristos cms fast with yeoman generator.

217 lines (212 loc) 5.47 kB
/* config for working with the site stats json */ /* * * Table of Contents: * **F001** - Get File Writes * **F002** - Get File Contents * **F003** - Clear File Contents * **F004** - Read File Contents * **F005** - Add File Contents * **F006** - Temp Test of Log Files * **F007** - Exports * */ const fs = require("fs-extra"); const moment = require("moment"); /* ********************************************************** * after require import * use like this: * ********************************************************** */ /* create log directory and nessesary files */ /*keep these in the .gitignore so they are not pushed */ fs.ensureDirSync("./important/AristosStuff/AristosSiteStats/logs"); fs.ensureFileSync( "./important/AristosStuff/AristosSiteStats/logs/siteStats.json" ); /* ********************************************************** * Get File Writes * Not exported directly * **F001** * ********************************************************** */ /* save config items */ let saveStatsItem = items => { fs.writeFileSync( "./important/AristosStuff/AristosSiteStats/logs/siteStats.json", JSON.stringify(items) ); }; /* end of save config item */ /* ********************************************************** * Save File Contents * Not exported directly * **F002** * ********************************************************** */ /* grab all config items */ let fetchStatsLog = () => { try { const configString = fs.readFileSync( "./important/AristosStuff/AristosSiteStats/logs/siteStats.json" ); return (config = JSON.parse(configString)); } catch (e) { return []; } }; /* end of fetch config */ /* ********************************************************** * Clear File Contents * **F003** * ********************************************************** */ /* remove config item */ let clearStatsLog = num => { saveStatsItem([]); }; /* end of remove config item */ /* remove config item */ let clearSomeNewStatsLog = num => { let items = fetchStatsLog(); let filteredItems = []; let i = 0; while (num < items.length) { filteredItems.push(items[i]); ++i; ++num; } saveStatsItem(filteredItems); }; /* end of remove config item */ let clearSomeOldStatsLog = num => { let items = fetchStatsLog(); let filteredItems = []; let i = num; while (num > 0) { filteredItems.push(items[i]); ++i; --num; } saveStatsItem(filteredItems); }; /* end of remove config item */ /* ********************************************************** * Read File Contents * **F004** * ********************************************************** */ /* read config item */ let readAllStats = () => { try { let items = fetchStatsLog(); return items; } catch (e) { return "none"; } }; /* end of read config item */ /* read config item */ let readSomeStats = num => { try { let items = fetchStatsLog(); let filteredItems = []; let i = items.length - 1; while (num > 0) { filteredItems.push(items[i]); --num; --i; } return filteredItems; } catch (e) { return "none"; } }; /* end of read config item */ /* ********************************************************** * Add File Contents * **F005** * ********************************************************** */ // functions to write messages to the log files // also places current date /* use for admin logs and basic info */ addStats = (stuffs, name = "siteStats") => { let items = fetchStatsLog(); let item = { name: name, date: moment().format("MMMM Do YYYY, h:mm:ss a"), data: stuffs }; items.push(item); saveStatsItem(items); return item; }; /* end of add a config item */ /* /* ********************************************************** * Update File Contents * **F005** * ********************************************************** */ // functions to write messages to the log files // also places current date /* use for admin logs and basic info */ updateStats = (stuffs, name = "siteStats") => { let items = fetchStatsLog(); let item = { name: name, data: stuffs }; let filtered = items.filter(json => json.name === name); if (filtered.length > 0) { filtered[0].data += stuffs; let removed = items.filter(json => json.name !== name); removed.push(filtered[0]); saveStatsItem(removed); return item; } else { items.push(item); saveStatsItem(items); return item; } }; /* end of add a config item */ /* ********************************************************** * Temp Test of Log Files * **F006** * ********************************************************** */ /* possibly temp log config item */ logStatsItems = () => { let items = fetchStatsLog(); items.forEach(item => { console.log("----"); console.log("Name:" + item.name); console.log("Info: " + item.data); }); }; /* end of log config item */ /* ********************************************************** * Exports * **F007** * ********************************************************** */ module.exports = { updateStats, addStats, readAllStats, readSomeStats, clearStatsLog, clearSomeNewStatsLog, clearSomeOldStatsLog, logStatsItems };