diff --git a/packages/io/src/io-util.ts b/packages/io/src/io-util.ts index 4207e07c..67bae805 100644 --- a/packages/io/src/io-util.ts +++ b/packages/io/src/io-util.ts @@ -23,21 +23,21 @@ export const IS_WINDOWS = process.platform === 'win32' * maintain trailing backslash for backward compatibility with Node.js < 24 */ export async function readlink(fsPath: string): Promise { - const result = await fs.promises.readlink(fsPath); - + const result = await fs.promises.readlink(fsPath) + // Only on Windows, ensure directory symlinks end with a backslash if (IS_WINDOWS) { try { - const stats = await fs.promises.lstat(result); + const stats = await fs.promises.lstat(result) if (stats.isDirectory() && !result.endsWith('\\')) { - return `${result}\\`; + return `${result}\\` } } catch (err) { // If we can't access the target, just return the original result } } - - return result; + + return result } // See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691 export const UV_FS_O_EXLOCK = 0x10000000