mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-21 05:50:55 +08:00
* Expand static compilation for common Effect 4 patterns * Run every Effect 4 fixture slice in CI * Preserve existing corpus behavior across Effect 4 lowering * Preserve Effect platform callbacks and native stream state * Record new corpus baselines and retain child stdin refusals * Retire the obsolete stateful regex diagnostic * Preserve promise reference count layout for cycle collection
20 lines
914 B
TypeScript
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);
|