gitset
Version:
Enhanced git init with user configuration management
75 lines • 2.55 kB
TypeScript
import { GitDetector } from './git-detector.js';
import { ConfigManager } from './config-manager.js';
import { GitInstaller } from './git-installer.js';
import { WelcomeScreen } from '../ui/welcome.js';
import { UserPrompts } from '../ui/prompts.js';
import { CliOptions, GitUserInfo, GitInitResult } from '../types/cli.js';
/**
* Orchestrates the main workflow of git repository initialization
* Separates business logic from CLI concerns for better testability
*/
export declare class WorkflowOrchestrator {
private gitDetector;
private configManager;
private gitInstaller;
private welcomeScreen;
private userPrompts;
constructor(gitDetector: GitDetector, configManager: ConfigManager, gitInstaller: GitInstaller, welcomeScreen: WelcomeScreen, userPrompts: UserPrompts);
/**
* Execute the complete gitset workflow
*/
execute(directory: string, options: CliOptions): Promise<GitInitResult>;
/**
* Ensure Git is installed on the system
*/
private ensureGitInstallation;
/**
* Install Git using available methods
*/
private installGit;
/**
* Select installation method when multiple options are available
*/
private selectInstallationMethod;
/**
* Validate directory with retry logic
*/
private validateAndGetDirectory;
/**
* Get user configuration based on options
*/
private getUserConfiguration;
/**
* Initialize Git repository
*/
private initializeRepository;
/**
* Show workflow results to user
*/
private showResults;
/**
* Legacy methods for backward compatibility with CLI tests
* These delegate to the appropriate components
*/
checkGitInstallation(): Promise<import("../types/cli.js").GitInstallStatus>;
getGlobalGitConfig(): Promise<GitUserInfo>;
validateDirectory(directory: string): Promise<import("../types/cli.js").DirectoryValidation>;
initializeGitRepository(directory: string, userInfo: any): Promise<GitInitResult>;
/**
* Get target directory from user input
*/
private getTargetDirectory;
/**
* Check if Git repository already exists and handle user decision
*/
private checkExistingGitRepo;
/**
* Ensure target directory exists (create if needed)
*/
private ensureDirectoryExists;
/**
* Factory method to create orchestrator with default dependencies
*/
static createDefault(): WorkflowOrchestrator;
}
//# sourceMappingURL=workflow-orchestrator.d.ts.map