UNPKG

genezio

Version:

Command line utility to interact with Genezio infrastructure.

37 lines (36 loc) 1.32 kB
import fs from "fs"; import { getBundleFolderSizeLimit } from "./file.js"; function getTop5LargestPackages(packages) { const sortedPackages = packages.sort((a, b) => b.totalSize - a.totalSize); const top5Packages = sortedPackages.slice(0, 5); const formatedSizes = top5Packages.map((pkg) => `${pkg.name} -> ${pkg.totalSize.toFixed(3)}mb`); return formatedSizes; } export async function calculateBiggestFiles(dependencies, allNonJsFilesPaths) { const fileSizes = []; const nodeModulesData = []; const promises = dependencies.map(async (file) => { const depSize = await getBundleFolderSizeLimit(file.path); const moduleData = { name: file.name, totalSize: depSize / 1024 ** 2, }; nodeModulesData.push(moduleData); }); await Promise.all(promises); allNonJsFilesPaths.forEach((fileInfo) => { const stats = fs.statSync(fileInfo.path); if (!stats.isFile()) { return; } const totalSize = stats.size; fileSizes.push({ name: fileInfo.name + fileInfo.extension, totalSize: totalSize / 1024 ** 2, }); }); return { dependenciesSize: getTop5LargestPackages(nodeModulesData), filesSize: getTop5LargestPackages(fileSizes), }; }