package/src/utils.js
import fs from "fs";import PATH from "path";import _ from "lodash";import jsonFiles from "./files"; TODO found// @TODO find out what methods are actually copy from generator module// and can be deleted here and reimported from it /** * fixPath() * @param {String} path */function fixPath(path) { path = PATH.resolve(__dirname, path); if (path.charAt(path.length - 1) !== "/") path += "/"; return path;} /** * For readAllFiles() * @param {String} path */function readAllFiles(path) { const content = []; path = fixPath(path); const files = fs.readdirSync(path); files.forEach(file => { const fileStat = fs.statSync(path + file).isDirectory(); if (file.slice(-5) === ".json") { if (!fileStat) { let data = fs.readFileSync(path + file); data = JSON.parse(data); content.push(data); } } }); return content;} /** * For getListContent() * @param {String} path * @param {String} fileName */function getListContent(path, fileName = "undefined") { if (fileName === "undefined") { // read all files return readAllFiles(path); } // read specified file let data = fs.readFileSync(path + fileName); data = JSON.parse(data); return data;} /** * For getList() * @param {String} path */function getList(path) { const list = []; const files = fs.readdirSync(path); files.forEach(file => { const fileStat = fs.statSync(path + file).isDirectory(); if (!fileStat) { list.push(file); } }); return list;} /** * For getFileInfo() * @param {String} path * @param {var} flag * @param {String} fileName */function getFileInfo(path, flag = 0, fileName = "undefined") { /* flag = 1 --> means return content if file name is given then content of that file else return content of all files. only path is given( flag=0 )--> give list of all files in directory. */ path = fixPath(path); if (flag === 1) { // get content from file return getListContent(path, fileName); } // return list of files return getList(path);} function filesObjects() { let arr; _.each(_.keys(jsonFiles), key => { arr = { ...arr, [key]: require(jsonFiles[key]) }; });} module.exports = { filesObjects, getFileInfo, readAllFiles};