-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Expand file tree
/
Copy pathupdate_flag_usage_metrics.ts
More file actions
51 lines (42 loc) · 1.33 KB
/
update_flag_usage_metrics.ts
File metadata and controls
51 lines (42 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/**
* @license
* Copyright 2026 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import * as fs from 'node:fs';
import * as path from 'node:path';
import {cliOptions} from '../build/src/bin/chrome-devtools-mcp-cli-options.js';
import {
getPossibleFlagMetrics,
type FlagMetric,
} from '../build/src/telemetry/flagUtils.js';
import {applyToExisting} from '../build/src/telemetry/toolMetricsUtils.js';
function writeFlagUsageMetrics() {
const outputPath = path.resolve('src/telemetry/flag_usage_metrics.json');
const dir = path.dirname(outputPath);
if (!fs.existsSync(dir)) {
throw new Error(`Error: Directory ${dir} does not exist.`);
}
let existingMetrics: FlagMetric[] = [];
if (fs.existsSync(outputPath)) {
try {
existingMetrics = JSON.parse(
fs.readFileSync(outputPath, 'utf8'),
) as FlagMetric[];
} catch {
console.warn(
`Warning: Failed to parse existing metrics from ${outputPath}. Starting fresh.`,
);
}
}
const newMetrics = getPossibleFlagMetrics(cliOptions);
const mergedMetrics = applyToExisting<FlagMetric>(
existingMetrics,
newMetrics,
);
fs.writeFileSync(outputPath, JSON.stringify(mergedMetrics, null, 2) + '\n');
console.log(
`Successfully wrote ${mergedMetrics.length} flag usage metrics to ${outputPath}`,
);
}
writeFlagUsageMetrics();