UNPKG

@push.rocks/smartfile

Version:

Provides comprehensive tools for efficient file management in Node.js using TypeScript, including handling streams, virtual directories, and various file operations.

34 lines (21 loc) 1.22 kB
# 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: 1. Detecting when a pattern starts with `**/` 2. Extracting the file pattern after `**/` (e.g., `*.ts` from `**/*.ts`) 3. Running both the original pattern and the extracted root pattern 4. 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.