qraft
Version:
A powerful CLI tool to qraft structured project setups from GitHub template repositories
257 lines • 8.22 kB
TypeScript
import { Command } from 'commander';
import { ConfigManager } from '../utils/config';
import { GitignoreManager } from '../utils/gitignoreManager';
import { QraftPatterns } from '../utils/qraftPatterns';
/**
* Options for the gitignore command
*/
export interface GitignoreCommandOptions {
dryRun?: boolean;
force?: boolean;
verbose?: boolean;
directory?: string;
}
/**
* Result of the gitignore command execution
*/
export interface GitignoreCommandResult {
success: boolean;
created: boolean;
modified: boolean;
patternsAdded: string[];
patternsSkipped: string[];
message: string;
error?: string;
}
/**
* GitignoreCommand handles the gitignore CLI command
*/
export declare class GitignoreCommand {
private gitignoreManager;
private qraftPatterns;
private configManager;
constructor(gitignoreManager?: GitignoreManager, qraftPatterns?: QraftPatterns, configManager?: ConfigManager);
/**
* Execute the gitignore command
* @param options Command options
* @returns Promise<GitignoreCommandResult> Command execution result
*/
execute(options?: GitignoreCommandOptions): Promise<GitignoreCommandResult>;
/**
* Handle execution errors with detailed analysis
* @param error The error that occurred
* @param targetDirectory Target directory
* @param options Command options
* @returns GitignoreCommandResult Error result
*/
private handleExecutionError;
/**
* Validate command prerequisites
* @param targetDirectory Target directory
* @param options Command options
* @returns Promise<{success: boolean, error?: string}> Validation result
*/
private validatePrerequisites;
/**
* Provide user-friendly error messages
* @param error The error that occurred
* @param context Additional context about when the error occurred
* @returns string User-friendly error message
*/
private getUserFriendlyErrorMessage;
/**
* Provide troubleshooting suggestions based on error type
* @param error The error that occurred
* @param options Command options
*/
private provideTroubleshootingSuggestions;
/**
* Handle dry run mode
* @param targetDirectory Target directory
* @param patterns Patterns to add
* @param options Command options
* @returns Promise<GitignoreCommandResult> Dry run result
*/
private handleDryRun;
/**
* Display dry run header information
* @param targetDirectory Target directory
* @param gitignorePath Path to .gitignore file
* @param fileExists Whether file exists
*/
private displayDryRunHeader;
/**
* Analyze changes for dry run mode
* @param targetDirectory Target directory
* @param patterns Patterns to analyze
* @returns Analysis result
*/
private analyzeDryRunChanges;
/**
* Display analysis of existing file
* @param existingPatterns Patterns that already exist
*/
private displayExistingFileAnalysis;
/**
* Display new file creation message
*/
private displayNewFileCreation;
/**
* Display what changes would be made
* @param newPatterns New patterns to add
* @param fileExists Whether file exists
*/
private displayDryRunChanges;
/**
* Display preview of the file content
* @param targetDirectory Target directory
* @param newPatterns New patterns to add
* @param fileExists Whether file exists
*/
private displayDryRunPreview;
/**
* Display dry run summary
* @param newPatterns New patterns
* @param existingPatterns Existing patterns
* @param fileExists Whether file exists
*/
private displayDryRunSummary;
/**
* Format dry run completion message
* @param newPatterns New patterns
* @param existingPatterns Existing patterns
* @param fileExists Whether file exists
* @returns Formatted message
*/
private formatDryRunMessage;
/**
* Handle permissions and confirmations based on force flag
* @param targetDirectory Target directory
* @param fileExists Whether .gitignore file exists
* @param options Command options
* @returns Promise<GitignoreCommandResult> Permission result
*/
private handlePermissions;
/**
* Confirm file creation with user
* @param targetDirectory Target directory
* @param options Command options
* @returns Promise<boolean> True if user confirms
*/
private confirmFileCreation;
/**
* Confirm file modification with user
* @param targetDirectory Target directory
* @param options Command options
* @returns Promise<boolean> True if user confirms
*/
private confirmFileModification;
/**
* Display force flag information
* @param options Command options
*/
private displayForceInfo;
/**
* Display verbose startup information
* @param targetDirectory Target directory
* @param options Command options
*/
private displayVerboseStartup;
/**
* Validate and display directory information
* @param targetDirectory Target directory
* @param options Command options
*/
private validateAndDisplayDirectory;
/**
* Display pattern analysis results
* @param patterns Detected patterns
* @param options Command options
*/
private displayPatternAnalysis;
/**
* Display validation results
* @param validPatterns Valid patterns
* @param invalidPatterns Invalid patterns
* @param options Command options
*/
private displayValidationResults;
/**
* Format options for display
* @param options Command options
* @returns Formatted options string
*/
private formatOptions;
/**
* Execute the main gitignore operation combining all utilities
* @param targetDirectory Target directory
* @param validPatterns Valid patterns to add
* @param options Command options
* @returns Promise<any> Operation result
*/
private executeGitignoreOperation;
/**
* Build pattern context for enhanced operation
* @param patterns Patterns to analyze
* @param options Command options
* @returns Promise<any> Pattern context
*/
private buildPatternContext;
/**
* Perform pre-operation analysis
* @param targetDirectory Target directory
* @param patterns Patterns to add
* @param options Command options
* @returns Promise<any> Analysis result
*/
private performPreOperationAnalysis;
/**
* Display pre-operation summary
* @param analysis Pre-operation analysis
* @param options Command options
*/
private displayPreOperationSummary;
/**
* Perform post-operation validation
* @param targetDirectory Target directory
* @param result Operation result
* @param options Command options
*/
private performPostOperationValidation;
/**
* Display operation results
* @param result GitignoreManager result
* @param targetDirectory Target directory
* @param options Command options
*/
private displayOperationResults;
/**
* Format success message
* @param result GitignoreManager result
* @param targetDirectory Target directory
* @param options Command options
* @returns string Formatted message
*/
private formatSuccessMessage;
}
/**
* Create and configure the gitignore command
* @returns Command Configured Commander.js command
*/
export declare function createGitignoreCommand(): Command;
/**
* Validate command line options
* @param options Command options to validate
* @returns Validation result
*/
export declare function validateCommandOptions(options: GitignoreCommandOptions): {
valid: boolean;
error?: string;
};
/**
* Handle command failure with appropriate messaging
* @param result Command result
* @param options Command options
*/
export declare function handleCommandFailure(result: GitignoreCommandResult, options: GitignoreCommandOptions): void;
//# sourceMappingURL=gitignore.d.ts.map