const getAllFiles = function(dirPath, arrayOfFiles) { files = fs.readdirSync(dirPath) arrayOfFiles = arrayOfFiles || [] files.forEach(function(file) { if (file !== ".git") { if (fs.statSync(dirPath + "/" + file).isDirectory()) { arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles) } else { arrayOfFiles.push(dirPath + "/" + file) } } }) return arrayOfFiles } module.exports = (pkg1, pkg2) => { asize1 = getAllFiles((home + "/packages/" + pkg1).replaceAll("\\", "/")).map(i => i.replaceAll("\\", "/").replaceAll((home + "/packages/" + pkg1).replaceAll("\\", "/") + "/", "")).map(i => fs.readFileSync(home + "/packages/" + pkg1 + "/" + i).length).reduce((a, b) => a + b); asize2 = getAllFiles((home + "/packages/" + pkg2).replaceAll("\\", "/")).map(i => i.replaceAll("\\", "/").replaceAll((home + "/packages/" + pkg2).replaceAll("\\", "/") + "/", "")).map(i => fs.readFileSync(home + "/packages/" + pkg2 + "/" + i).length).reduce((a, b) => a + b); asize = asize2 - asize1; if (asize > 0) { s = "+"; } else if (asize < 0) { s = "-"; } else { s = "±"; } asize = Math.abs(asize); if (asize > 1024) { if (asize > 1048576) { return s + (asize / 1048576).toFixed(1) + "M"; } else { return s + (asize / 1024).toFixed(1) + "K"; } } else { return s + asize + "B"; } }