* Normalize a user-supplied file path to the project-relative, forward-slash * form CodeGraph stores in the index. Accepts an absolute path, a `./`-prefixed * path, or Windows back-slashes; an empty string when the input is blank. Used * by `codegraph affected` so `./src/x.ts`, `/abs/repo/src/x.t
(filePath: string, projectPath: string)
| 1576 | * `src/x.ts` all match the same indexed file. (#825) |
| 1577 | */ |
| 1578 | function normalizeIndexPath(filePath: string, projectPath: string): string { |
| 1579 | let f = filePath.trim(); |
| 1580 | if (!f) return ''; |
| 1581 | if (path.isAbsolute(f)) f = path.relative(projectPath, f); |
| 1582 | // Collapse `.`/`..` segments, then force forward slashes and drop a leading |
| 1583 | // `./` (path.normalize already strips it on POSIX; explicit for Windows). |
| 1584 | f = path.normalize(f).replace(/\\/g, '/').replace(/^\.\//, ''); |
| 1585 | return f; |
| 1586 | } |
| 1587 | |
| 1588 | /** |
| 1589 | * Convert glob pattern to regex |