filesystem.ts 441 B

12345678910
  1. import path from "path"
  2. import { Effect, FileSystem } from "effect"
  3. export const writeFileStringScoped = Effect.fn("test.writeFileStringScoped")(function* (file: string, text: string) {
  4. const fs = yield* FileSystem.FileSystem
  5. yield* fs.makeDirectory(path.dirname(file), { recursive: true })
  6. yield* fs.writeFileString(file, text)
  7. yield* Effect.addFinalizer(() => fs.remove(file, { force: true }).pipe(Effect.orDie))
  8. return file
  9. })