Files
grafana/scripts/cli/analytics/main.mts
2025-11-27 00:37:17 +01:00

25 lines
837 B
TypeScript

import path from 'path';
import fs from 'fs/promises';
import { Project } from 'ts-morph';
import { findAnalyticsEvents } from './findAllEvents.mts';
import { formatEventsAsMarkdown } from './outputFormats/markdown.mts';
const CREATE_EVENT_FACTORY_PATH = path.resolve('public/app/core/services/echo/Echo.ts');
const SOURCE_FILE_PATTERNS = ['**/*.ts'];
const OUTPUT_FORMAT = 'markdown';
const project = new Project({
tsConfigFilePath: path.resolve('tsconfig.json'),
});
const files = project.getSourceFiles(SOURCE_FILE_PATTERNS);
const events = findAnalyticsEvents(files, CREATE_EVENT_FACTORY_PATH);
if (OUTPUT_FORMAT === 'markdown') {
const markdown = await formatEventsAsMarkdown(events);
console.log(markdown);
await fs.writeFile('analytics-report.md', markdown);
} else {
console.log(JSON.stringify(events, null, 2));
}