gather-ts
Version:
A powerful code analysis and packaging tool designed for creating AI-friendly code representations for javascript and typescript projects.
44 lines (43 loc) • 1.88 kB
TypeScript
import { ICompileOptions, ICompileResult } from "./compiler";
import { IGatherTSConfig, IConfigValidationResult } from "./config";
import { IFileWithContent } from "./files";
import { ISummaryStats } from "./stats";
export interface IService {
isInitialized: boolean;
initialize(): Promise<void>;
cleanup(): void;
}
export interface ICompilationService extends IService {
compile(options: ICompileOptions): Promise<ICompileResult>;
validateOptions(options: ICompileOptions): Promise<boolean>;
}
export interface ITokenizationService extends IService {
countTokens(filePath: string, text: string): Promise<number>;
generateSummary(filesWithContent: IFileWithContent[]): Promise<ISummaryStats>;
generateSummaryText(stats: ISummaryStats): string;
printSummary(stats: ISummaryStats, outputFile: string): void;
}
export interface IConfigurationService extends IService {
validateConfig(config: Partial<IGatherTSConfig>): IConfigValidationResult;
loadConfig(configPath: string): Promise<IGatherTSConfig>;
saveConfig(config: IGatherTSConfig, configPath: string): Promise<void>;
getDefaultConfig(): IGatherTSConfig;
}
export interface IDependencyService extends IService {
analyzeDependencies(entryFile: string, projectRoot: string): Promise<string[]>;
validateEntryPoints(entryFiles: string[]): Promise<boolean>;
getDependencyGraph(): Promise<Map<string, string[]>>;
}
export interface ICacheService extends IService {
get<T>(key: string): Promise<T | null>;
set<T>(key: string, value: T, ttl?: number): Promise<void>;
delete(key: string): Promise<void>;
clear(): Promise<void>;
has(key: string): Promise<boolean>;
}
export declare abstract class BaseService implements IService {
isInitialized: boolean;
initialize(): Promise<void>;
cleanup(): void;
protected checkInitialized(): void;
}