gather-ts
Version:
A powerful code analysis and packaging tool designed for creating AI-friendly code representations for javascript and typescript projects.
69 lines (68 loc) • 1.97 kB
TypeScript
import { ICompileOptions } from "@/types/compiler";
import { IService } from "@/types/services";
import { ILogger } from "@/utils/logging/interfaces/ILogger";
import { IConfigManager } from "@/config/interfaces/IConfigManager";
import { ICompileContext } from "@/core/compiler/interfaces/ICompileContext";
import { IArgumentParser } from "@/core/compiler/interfaces/IArgumentParser";
import { IFileSystem } from "@/utils";
export interface ICLIDeps {
logger: ILogger;
configManager: IConfigManager;
compiler: ICompileContext;
argumentParser: IArgumentParser;
fileSystem: IFileSystem;
}
export interface ICLIOptions {
debug?: boolean;
defaultConfig?: boolean;
exitOnError?: boolean;
}
export interface ICLIResult {
success: boolean;
exitCode: number;
output?: string;
error?: Error;
metrics?: ICLIMetrics;
}
export interface ICLIMetrics {
executionTime: number;
memoryUsage: number;
filesProcessed: number;
errors: number;
warnings: number;
}
export interface ICLIProgress {
phase: string;
completed: number;
total: number;
message?: string;
}
export interface ICLIEventMap {
"command:start": {
command: string;
options: ICompileOptions;
timestamp: number;
};
"command:complete": {
command: string;
result: ICLIResult;
timestamp: number;
};
error: {
error: Error;
command?: string;
timestamp: number;
};
warning: {
message: string;
command?: string;
timestamp: number;
};
progress: ICLIProgress;
}
export interface ICLI extends IService {
run(): Promise<ICLIResult>;
on<K extends keyof ICLIEventMap>(event: K, listener: (data: ICLIEventMap[K]) => void): this;
off<K extends keyof ICLIEventMap>(event: K, listener: (data: ICLIEventMap[K]) => void): this;
emit<K extends keyof ICLIEventMap>(event: K, data: ICLIEventMap[K]): boolean;
}