Ts Screener Extra Quality -
export type ScreenerReport = summary: filesScanned: number; totalAnyUsage: number; totalMissingTypes: number; typeCoveragePercent: number; passed: boolean; ; details: FileReport[]; ; import ts from 'typescript'; import glob from 'glob'; import readFileSync from 'fs'; import FileReport, ScreenerOptions, ScreenerReport from './types.js'; export class TypeScriptScreener { constructor(private options: ScreenerOptions) {}
if (options.json) console.log(jsonReporter(report)); else consoleReporter(report);
if (!report.summary.passed) process.exit(1); ts screener
import ScreenerReport from '../types.js'; export function jsonReporter(report: ScreenerReport): string return JSON.stringify(report, null, 2);
program.parse(); import ScreenerReport from '../types.js'; export function consoleReporter(report: ScreenerReport): void console.log('\n📊 TypeScript Screener Report\n'); console.log( ✅ Files scanned: $report.summary.filesScanned ); console.log( 🎯 Type coverage: $report.summary.typeCoveragePercent% ); console.log( ⚠️ Total 'any' usage: $report.summary.totalAnyUsage ); console.log( ❓ Missing type annotations: $report.summary.totalMissingTypes ); console.log( 🏁 Status: $report.summary.passed ? 'PASSED ✅' : 'FAILED ❌' ); import ts from 'typescript'
const program = new Command();
);
private checkStrictOptions(sourceFile: ts.SourceFile): string[] const errors: string[] = []; if (this.options.noImplicitAny) // Check compiler flags via parsing tsconfig.json if needed // Simplified: we already flagged implicitAnyLines