fix(prettier): Improve file exclusion in the Prettier formatter to skip unnecessary files and directories.

This commit is contained in:
2025-08-08 05:28:01 +00:00
parent 4003944139
commit b629a7d70b
3 changed files with 44 additions and 2 deletions

View File

@@ -1,5 +1,11 @@
# Changelog # 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) ## 2025-08-08 - 1.16.3 - fix(changecache/prettier)
Skip directories during file processing to prevent errors in changecache and prettier formatting Skip directories during file processing to prevent errors in changecache and prettier formatting

View File

@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@git.zone/cli', 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.' 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.'
} }

View File

@@ -12,12 +12,48 @@ export class PrettierFormatter extends BaseFormatter {
const changes: IPlannedChange[] = []; const changes: IPlannedChange[] = [];
const globPattern = '**/*.{ts,tsx,js,jsx,json,md,css,scss,html,xml,yaml,yml}'; 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 // Get all files that match the pattern
const files = await plugins.smartfile.fs.listFileTree('.', globPattern); 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[] = []; const validFiles: string[] = [];
for (const file of files) { 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 { try {
const stats = await plugins.smartfile.fs.stat(file); const stats = await plugins.smartfile.fs.stat(file);
if (!stats.isDirectory()) { if (!stats.isDirectory()) {