Tasks: * [x] find all direct usage of node's "path" module * see: `grep -l "'path'" src/client/**/*.ts | xargs grep -ho 'path\.[a-zA-Z]*' | sort | uniq` * `dirname()` * `extend()` * `extname()` * `isAbsolute()` * `join()` * `length()` * `relative()` * `resolve()` * `toLocaleLowerCase()` * `toString()` * `toUpperCase()` * **how to deal with third-party modules that use node's "path" module directly?** * prep (especially for testability) * [x] add `IFileSystemPaths` for low-level API (see #8801) * [ ] move `IPathUtils` around & rename it (see #8801) * [ ] move low-level operations to `IFileSystemPaths` (meta: #8801) * [ ] move high-level operations to `IFileSystemPathUtils` (meta: #8801) * consolidate all fs path operations * target: `IFileSystemPaths` * [ ] `join()` * (#7915) implement * update call sites to use `IFileSystemPathUtils.raw.*` * [ ] `dirname()` * (#7915) implement * update call sites to use `IFileSystemPathUtils.raw.*` * [ ] `basename()` * update call sites to use `IFileSystemPathUtils.raw.*` * [x] (#7915) `normcase()` * implement * update call sites to use `IFileSystemPathUtils.raw.*` * [ ] `sep` * update call sites to use `IFileSystemPathUtils.raw.*` * [ ] ... * target: `IFileSystemPaths` * [ ] ... * [ ] ensure we keep using only our wrapper in the future (see #8801)
Activity
karrtikr commentedon Dec 22, 2022
Closing as stale.