* Recursively collects all `.d.ts` files from a directory into the fsMap. * * @param {Map } fsMap The map to populate * @param {string} dir The directory to walk * @param {string} virtualPrefix The virtual path prefix (e.g., "/node_modules/@types/node") * @param {string} baseDir
(fsMap, dir, virtualPrefix, baseDir)
| 18 | * @param {string} baseDir The base directory for computing relative paths |
| 19 | */ |
| 20 | function collectDtsFiles(fsMap, dir, virtualPrefix, baseDir) { |
| 21 | const entries = readdirSync(dir, { withFileTypes: true }).sort((a, b) => |
| 22 | a.name.localeCompare(b.name) |
| 23 | ); |
| 24 | |
| 25 | for (const entry of entries) { |
| 26 | const fullPath = join(dir, entry.name); |
| 27 | |
| 28 | if (entry.isDirectory()) { |
| 29 | collectDtsFiles(fsMap, fullPath, virtualPrefix, baseDir); |
| 30 | } else if (entry.isFile() && /\.d\.([^.]+\.)?[cm]?ts$/i.test(entry.name)) { |
| 31 | const relativePath = fullPath.slice(baseDir.length).replace(/\\/g, '/'); |
| 32 | const virtualPath = `${virtualPrefix}${relativePath}`; |
| 33 | |
| 34 | fsMap.set(virtualPath, readFileSync(fullPath, 'utf8')); |
| 35 | } |
| 36 | } |
| 37 | } |
| 38 | |
| 39 | /** |
| 40 | * Generates a virtual filesystem map containing all TypeScript library |
no outgoing calls
no test coverage detected