UNPKG

@re-shell/cli

Version:

Full-stack development platform uniting microservices and microfrontends. Build complete applications with .NET (ASP.NET Core Web API, Minimal API), Java (Spring Boot, Quarkus, Micronaut, Vert.x), Rust (Actix-Web, Warp, Rocket, Axum), Python (FastAPI, Dja

90 lines (89 loc) 2.7 kB
export interface BuildTarget { name: string; path: string; type: 'app' | 'package' | 'lib' | 'tool'; buildScript: string; testScript?: string; dependencies: string[]; outputs: string[]; inputs: string[]; lastBuildTime?: number; buildHash?: string; } export interface BuildPlan { targets: BuildTarget[]; buildOrder: string[]; parallelGroups: string[][]; totalEstimatedTime: number; optimizations: string[]; } export interface BuildResult { target: string; success: boolean; duration: number; output: string; error?: string; outputSize?: number; cacheHit?: boolean; } export interface IncrementalBuildOptions { maxParallelBuilds: number; enableCache: boolean; cacheLocation: string; cleanBuild: boolean; dryRun: boolean; verbose: boolean; skipTests: boolean; failFast: boolean; buildTimeout: number; } export interface BuildCache { version: string; builds: Record<string, { hash: string; timestamp: number; duration: number; success: boolean; outputSize: number; }>; } export declare class IncrementalBuilder { private rootPath; private changeDetector; private impactAnalyzer; private buildCache; private options; constructor(rootPath: string, options?: Partial<IncrementalBuildOptions>); initialize(): Promise<void>; createBuildPlan(changedFiles?: string[]): Promise<BuildPlan>; executeBuildPlan(plan: BuildPlan): Promise<BuildResult[]>; buildTarget(target: BuildTarget): Promise<BuildResult>; private executeBuildScript; private discoverBuildTargets; private calculateOptimalBuildOrder; private createParallelGroups; private estimateBuildTime; private estimateTargetBuildTime; private generateOptimizations; private isCacheValid; private detectPackageManager; private detectOutputPaths; private detectInputPaths; private getFilesRecursive; private getLastBuildTime; private calculateBuildHash; private calculateOutputSize; private getDirectorySize; private loadBuildCache; private saveBuildCache; private updateBuildCache; getBuildStats(): { totalBuilds: number; cacheHitRate: number; averageBuildTime: number; totalCacheSize: number; }; clearCache(): Promise<void>; } export declare function createIncrementalBuilder(rootPath: string, options?: Partial<IncrementalBuildOptions>): Promise<IncrementalBuilder>; export declare function runIncrementalBuild(rootPath: string, changedFiles?: string[], options?: Partial<IncrementalBuildOptions>): Promise<BuildResult[]>;