fix(prettier): Improve file exclusion in the Prettier formatter to skip unnecessary files and directories.
This commit is contained in:
		| @@ -1,5 +1,11 @@ | ||||
| # Changelog | ||||
|  | ||||
| ## 2025-08-08 - 1.16.4 - fix(prettier) | ||||
| Improve file exclusion in the Prettier formatter to skip unnecessary files and directories. | ||||
|  | ||||
| - Added exclusion patterns for node_modules, .git, dist, .nogit, coverage, .nyc_output, vendor, bower_components, jspm_packages, and minified files. | ||||
| - Optimized filtering logic to ensure only valid files are processed. | ||||
|  | ||||
| ## 2025-08-08 - 1.16.3 - fix(changecache/prettier) | ||||
| Skip directories during file processing to prevent errors in changecache and prettier formatting | ||||
|  | ||||
|   | ||||
| @@ -3,6 +3,6 @@ | ||||
|  */ | ||||
| export const commitinfo = { | ||||
|   name: '@git.zone/cli', | ||||
|   version: '1.16.3', | ||||
|   version: '1.16.4', | ||||
|   description: 'A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.' | ||||
| } | ||||
|   | ||||
| @@ -12,12 +12,48 @@ export class PrettierFormatter extends BaseFormatter { | ||||
|     const changes: IPlannedChange[] = []; | ||||
|     const globPattern = '**/*.{ts,tsx,js,jsx,json,md,css,scss,html,xml,yaml,yml}'; | ||||
|      | ||||
|     // Directories to exclude from formatting | ||||
|     const excludePatterns = [ | ||||
|       'node_modules/**', | ||||
|       '.git/**', | ||||
|       'dist/**', | ||||
|       'dist_*/**', | ||||
|       '.nogit/**', | ||||
|       'coverage/**', | ||||
|       '.nyc_output/**', | ||||
|       'vendor/**', | ||||
|       'bower_components/**', | ||||
|       'jspm_packages/**', | ||||
|       '*.min.js', | ||||
|       '*.min.css' | ||||
|     ]; | ||||
|      | ||||
|     // Get all files that match the pattern | ||||
|     const files = await plugins.smartfile.fs.listFileTree('.', globPattern); | ||||
|      | ||||
|     // Filter out any potential directories and ensure we only process files | ||||
|     // Filter out excluded directories and ensure we only process files | ||||
|     const validFiles: string[] = []; | ||||
|     for (const file of files) { | ||||
|       // Check if file matches any exclude pattern | ||||
|       let shouldExclude = false; | ||||
|       for (const pattern of excludePatterns) { | ||||
|         // Simple pattern matching for common cases | ||||
|         const patternBase = pattern.replace('/**', '').replace('**/', '').replace('*', ''); | ||||
|         if (pattern.endsWith('/**') && file.startsWith(patternBase + '/')) { | ||||
|           shouldExclude = true; | ||||
|           logVerbose(`Excluding ${file} - matches exclude pattern ${pattern}`); | ||||
|           break; | ||||
|         } else if (pattern.startsWith('*.') && file.endsWith(patternBase)) { | ||||
|           shouldExclude = true; | ||||
|           logVerbose(`Excluding ${file} - matches exclude pattern ${pattern}`); | ||||
|           break; | ||||
|         } | ||||
|       } | ||||
|        | ||||
|       if (shouldExclude) { | ||||
|         continue; | ||||
|       } | ||||
|        | ||||
|       try { | ||||
|         const stats = await plugins.smartfile.fs.stat(file); | ||||
|         if (!stats.isDirectory()) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user