On windows handle the long paths in realpathSync.native

Fixes #49470
This commit is contained in:
Sheetal Nandi
2022-08-15 10:51:29 -07:00
parent 9f7c0cbad7
commit b73d93bf2a
+6 -2
View File
@@ -1440,7 +1440,7 @@ namespace ts {
const platform: string = _os.platform();
const useCaseSensitiveFileNames = isFileSystemCaseSensitive();
const realpathSync = _fs.realpathSync.native ?? _fs.realpathSync;
const fsRealpath = !!_fs.realpathSync.native ? process.platform === "win32" ? fsRealPathHandlingLongPath : _fs.realpathSync.native : _fs.realpathSync;
const fsSupportsRecursiveFsWatch = isNode4OrLater && (process.platform === "win32" || process.platform === "darwin");
const getCurrentDirectory = memoize(() => process.cwd());
@@ -1889,9 +1889,13 @@ namespace ts {
return getAccessibleFileSystemEntries(path).directories.slice();
}
function fsRealPathHandlingLongPath(path: string): string {
return path.length < 260 ? _fs.realpathSync.native(path) : _fs.realpathSync(path);
}
function realpath(path: string): string {
try {
return realpathSync(path);
return fsRealpath(path);
}
catch {
return path;