25 lines
837 B
TypeScript
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));
|
|
} |