|
7 | 7 | */ |
8 | 8 |
|
9 | 9 | import Fs from 'fs'; |
| 10 | +import Path from 'path'; |
10 | 11 |
|
11 | 12 | import dedent from 'dedent'; |
12 | 13 | import Yaml from 'js-yaml'; |
13 | | -import { createFailError, ToolingLog } from '@kbn/dev-utils'; |
| 14 | +import { createFailError, ToolingLog, CiStatsMetrics } from '@kbn/dev-utils'; |
14 | 15 |
|
15 | | -import { OptimizerConfig, getMetrics, Limits } from './optimizer'; |
| 16 | +import { OptimizerConfig, Limits } from './optimizer'; |
16 | 17 |
|
17 | 18 | const LIMITS_PATH = require.resolve('../limits.yml'); |
18 | 19 | const DEFAULT_BUDGET = 15000; |
@@ -76,13 +77,18 @@ interface UpdateBundleLimitsOptions { |
76 | 77 |
|
77 | 78 | export function updateBundleLimits({ log, config, dropMissing }: UpdateBundleLimitsOptions) { |
78 | 79 | const limits = readLimits(); |
79 | | - const metrics = getMetrics(config); |
| 80 | + const metrics: CiStatsMetrics = config.bundles |
| 81 | + .map((bundle) => |
| 82 | + JSON.parse(Fs.readFileSync(Path.resolve(bundle.outputDir, 'metrics.json'), 'utf-8')) |
| 83 | + ) |
| 84 | + .flat() |
| 85 | + .sort((a, b) => a.id.localeCompare(b.id)); |
80 | 86 |
|
81 | 87 | const pageLoadAssetSize: NonNullable<Limits['pageLoadAssetSize']> = dropMissing |
82 | 88 | ? {} |
83 | 89 | : limits.pageLoadAssetSize ?? {}; |
84 | 90 |
|
85 | | - for (const metric of metrics.sort((a, b) => a.id.localeCompare(b.id))) { |
| 91 | + for (const metric of metrics) { |
86 | 92 | if (metric.group === 'page load bundle size') { |
87 | 93 | const existingLimit = limits.pageLoadAssetSize?.[metric.id]; |
88 | 94 | pageLoadAssetSize[metric.id] = |
|
0 commit comments