1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = generateBundleReport;
|
7 |
|
8 | var _nullthrows = _interopRequireDefault(require("nullthrows"));
|
9 |
|
10 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11 |
|
12 | function generateBundleReport(bundleGraph, largestAssetCount = 10) {
|
13 | let bundles = [];
|
14 | bundleGraph.traverseBundles(bundle => {
|
15 | bundles.push(bundle);
|
16 | });
|
17 | bundles.sort((a, b) => b.stats.size - a.stats.size);
|
18 | return {
|
19 | bundles: bundles.map(bundle => {
|
20 | let assets = [];
|
21 | bundle.traverseAssets(asset => {
|
22 | assets.push(asset);
|
23 | });
|
24 | assets.sort((a, b) => b.stats.size - a.stats.size);
|
25 | return {
|
26 | filePath: (0, _nullthrows.default)(bundle.filePath),
|
27 | size: bundle.stats.size,
|
28 | time: bundle.stats.time,
|
29 | largestAssets: assets.slice(0, largestAssetCount).map(asset => ({
|
30 | filePath: asset.filePath,
|
31 | size: asset.stats.size,
|
32 | time: asset.stats.time
|
33 | })),
|
34 | totalAssets: assets.length
|
35 | };
|
36 | })
|
37 | };
|
38 | } |
\ | No newline at end of file |