UNPKG

qraft

Version:

A powerful CLI tool to qraft structured project setups from GitHub template repositories

257 lines 8.22 kB
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