UNPKG

next-bundle-analyzer

Version:
55 lines (51 loc) 1.81 kB
'use strict'; var constants = require('../constants.js'); function getPages(buildManifest, chunks, commonChunks) { const pages = []; Object.entries(buildManifest.pages).forEach(([label, pageChunks]) => { if (label === '/_app') { return; } let totalGzipSize = 0; let totalParsedSize = 0; let totalStatSize = 0; let gzipSize = 0; let parsedSize = 0; let statSize = 0; pageChunks .filter((chunk) => !chunk.endsWith('.css')) .forEach((chunk) => { const chunkData = chunks.find((c) => c.label === chunk); if (chunkData === undefined) { throw new Error(`${constants.PLUGIN_NAME}: unable to find chunk data for ${chunk}`); } totalGzipSize += chunkData.gzipSize; totalParsedSize += chunkData.parsedSize; totalStatSize += chunkData.statSize; }); pageChunks .filter((chunk) => !chunk.endsWith('.css') && !commonChunks.some((commonChunk) => commonChunk.chunk === chunk)) .forEach((chunk) => { const chunkData = chunks.find((c) => c.label === chunk); if (chunkData === undefined) { throw new Error(`${constants.PLUGIN_NAME}: unable to find chunk data for ${chunk}`); } gzipSize += chunkData.gzipSize; parsedSize += chunkData.parsedSize; statSize += chunkData.statSize; }); pages.push({ label, chunks: pageChunks, gzipSize, parsedSize, statSize, totalGzipSize, totalParsedSize, totalStatSize, }); }); return pages; } exports.getPages = getPages;