1.2 KiB
1.2 KiB
SmartFile Implementation Hints
listFileTree Function Enhancement (ts/fs.ts:367-415)
Issue Fixed
The listFileTree function previously had inconsistent behavior with **/*.extension patterns across different systems and glob implementations. Some implementations would miss root-level files when using patterns like **/*.ts.
Solution Implemented
Modified the function to explicitly handle **/ patterns by:
- Detecting when a pattern starts with
**/ - Extracting the file pattern after
**/(e.g.,*.tsfrom**/*.ts) - Running both the original pattern and the extracted root pattern
- Using a Set to deduplicate results and ensure consistent ordering
Key Benefits
- Guarantees consistent behavior across all systems
- Ensures both root-level and nested files are found with
**/*patterns - Maintains backward compatibility
- No performance degradation due to efficient deduplication
Test Coverage
Added comprehensive tests to verify:
- Both root and nested files are found with
**/*.ts - No duplicate entries in results
- Edge cases with various file extensions work correctly
This fix ensures tools like tsbuild check **/*.ts work reliably across all systems.