Files
scriptc/tests/fixtures/effect4/node-fs-operations.ts

20 lines
914 B
TypeScript

import * as Effect from "effect/Effect";
import * as FileSystem from "effect/FileSystem";
import * as NodeFileSystem from "@effect/platform-node/NodeFileSystem";
const program = Effect.gen(function* () {
const fs = yield* FileSystem.FileSystem;
const directory = yield* fs.makeTempDirectoryScoped();
const original = directory + "/original.txt";
yield* fs.writeFileString(original, "hello");
yield* fs.access(original, { readable: true });
yield* fs.copyFile(original, directory + "/copy.txt");
yield* fs.rename(directory + "/copy.txt", directory + "/renamed.txt");
const info = yield* fs.stat(original);
const contents = yield* fs.readFileString(directory + "/renamed.txt");
const missing = yield* fs.exists(directory + "/missing.txt");
console.log(info.type, Number(info.size), contents, missing);
}).pipe(Effect.scoped, Effect.provide(NodeFileSystem.layer));
Effect.runPromise(program);