UNPKG

sicua

Version:

A tool for analyzing project structure and dependencies

57 lines (56 loc) 1.66 kB
import ts from "typescript"; /** * Enum representing supported translation libraries */ export declare enum TranslationLibrary { NEXT_INTL = "next-intl", REACT_I18NEXT = "react-i18next", UNKNOWN = "unknown" } /** * Result of library detection analysis */ export interface LibraryDetectionResult { library: TranslationLibrary; confidence: number; evidence: { imports: string[]; hooks: string[]; patterns: string[]; }; } /** * Detects which translation library is being used in the project */ export declare class LibraryDetector { /** * Analyzes source files to determine which translation library is being used * @param sourceFiles Map of source files to analyze * @returns Detection result with library type and confidence */ detectTranslationLibrary(sourceFiles: Map<string, ts.SourceFile>): LibraryDetectionResult; /** * Scans for next-intl specific patterns * @param sourceFiles Source files to scan * @returns Evidence of next-intl usage */ private scanForNextIntl; /** * Scans for react-i18next specific patterns * @param sourceFiles Source files to scan * @returns Evidence of react-i18next usage */ private scanForReactI18next; /** * Calculates confidence score based on evidence * @param evidence Evidence collected for a library * @returns Confidence score between 0 and 1 */ private calculateConfidenceScore; /** * Utility method to visit all nodes in a source file * @param node Starting node * @param visitor Visitor function */ private visitNodes; }