sicua
Version:
A tool for analyzing project structure and dependencies
57 lines (56 loc) • 1.66 kB
TypeScript
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;
}