fix(changecache/prettier): Skip directories during file processing to prevent errors in changecache and prettier formatting
This commit is contained in:
		| @@ -1,5 +1,12 @@ | ||||
| # Changelog | ||||
|  | ||||
| ## 2025-08-08 - 1.16.3 - fix(changecache/prettier) | ||||
| Skip directories during file processing to prevent errors in changecache and prettier formatting | ||||
|  | ||||
| - Removed unnecessary await on synchronous file reads in changecache | ||||
| - Added directory checks in changecache to immediately skip directories | ||||
| - Filtered out directories in prettier formatter to avoid processing non-files | ||||
|  | ||||
| ## 2025-08-07 - 1.16.2 - fix(format) | ||||
| Fix format command confirmation prompt to correctly check user response | ||||
|  | ||||
|   | ||||
| @@ -3,6 +3,6 @@ | ||||
|  */ | ||||
| export const commitinfo = { | ||||
|   name: '@git.zone/cli', | ||||
|   version: '1.16.1', | ||||
|   version: '1.16.3', | ||||
|   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.' | ||||
| } | ||||
|   | ||||
| @@ -38,7 +38,7 @@ export class ChangeCache { | ||||
|       }; | ||||
|     } | ||||
|      | ||||
|     const content = await plugins.smartfile.fs.toStringSync(this.manifestPath); | ||||
|     const content = plugins.smartfile.fs.toStringSync(this.manifestPath); | ||||
|     return JSON.parse(content); | ||||
|   } | ||||
|    | ||||
| @@ -59,7 +59,13 @@ export class ChangeCache { | ||||
|      | ||||
|     // Get current file stats | ||||
|     const stats = await plugins.smartfile.fs.stat(absolutePath); | ||||
|     const content = await plugins.smartfile.fs.toStringSync(absolutePath); | ||||
|      | ||||
|     // Skip directories | ||||
|     if (stats.isDirectory()) { | ||||
|       return false; // Directories are not processed | ||||
|     } | ||||
|      | ||||
|     const content = plugins.smartfile.fs.toStringSync(absolutePath); | ||||
|     const currentChecksum = this.calculateChecksum(content); | ||||
|      | ||||
|     // Get cached info | ||||
| @@ -83,6 +89,12 @@ export class ChangeCache { | ||||
|      | ||||
|     // Get current file stats | ||||
|     const stats = await plugins.smartfile.fs.stat(absolutePath); | ||||
|      | ||||
|     // Skip directories | ||||
|     if (stats.isDirectory()) { | ||||
|       return; // Don't cache directories | ||||
|     } | ||||
|      | ||||
|     const content = await plugins.smartfile.fs.toStringSync(absolutePath); | ||||
|     const checksum = this.calculateChecksum(content); | ||||
|      | ||||
|   | ||||
| @@ -15,8 +15,22 @@ export class PrettierFormatter extends BaseFormatter { | ||||
|     // Get all files that match the pattern | ||||
|     const files = await plugins.smartfile.fs.listFileTree('.', globPattern); | ||||
|      | ||||
|     // Check which files need formatting | ||||
|     // Filter out any potential directories and ensure we only process files | ||||
|     const validFiles: string[] = []; | ||||
|     for (const file of files) { | ||||
|       try { | ||||
|         const stats = await plugins.smartfile.fs.stat(file); | ||||
|         if (!stats.isDirectory()) { | ||||
|           validFiles.push(file); | ||||
|         } | ||||
|       } catch (error) { | ||||
|         // Skip files that can't be accessed | ||||
|         logVerbose(`Skipping ${file} - cannot access: ${error.message}`); | ||||
|       } | ||||
|     } | ||||
|      | ||||
|     // Check which files need formatting | ||||
|     for (const file of validFiles) { | ||||
|       // Skip files that haven't changed | ||||
|       if (!await this.shouldProcessFile(file)) { | ||||
|         logVerbose(`Skipping ${file} - no changes detected`); | ||||
| @@ -85,7 +99,7 @@ export class PrettierFormatter extends BaseFormatter { | ||||
|      | ||||
|     try { | ||||
|       // Read current content | ||||
|       const content = await plugins.smartfile.fs.toStringSync(change.path); | ||||
|       const content = plugins.smartfile.fs.toStringSync(change.path); | ||||
|        | ||||
|       // Format with prettier | ||||
|       const prettier = await import('prettier'); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user