fix(core): tolerate AlreadyExists in FSUtil.ensureDir (#36542)

Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
This commit is contained in:
BB84 2026-07-15 10:26:50 -04:00 committed by GitHub
commit 656f299017
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -114,7 +114,14 @@ export namespace FSUtil {
})
const ensureDir = Effect.fn("FileSystem.ensureDir")(function* (path: string) {
yield* fs.makeDirectory(path, { recursive: true })
yield* fs.makeDirectory(path, { recursive: true }).pipe(
// Bun on Windows can throw EEXIST here despite recursive mode.
// https://github.com/oven-sh/bun/issues/21901
Effect.catchIf(
(error) => error.reason._tag === "AlreadyExists",
(error) => isDir(path).pipe(Effect.flatMap((exists) => (exists ? Effect.void : Effect.fail(error)))),
),
)
})
const writeWithDirs = Effect.fn("FileSystem.writeWithDirs")(function* (