import { Cause, Data, Effect, pipe, Random } from "effect";
export class TestError1 extends Data.TaggedError("TestError1")<{}> {}
export class TestError2 extends Data.TaggedError("TestError2")<{}> {}
const testEffect = pipe(
Random.next,
Effect.flatMap((x) => {
if (x < 0.3) {
return Effect.failCause(Cause.fail(new TestError1()))
} else if (x < 0.6) {
return Effect.failCause(Cause.fail(new TestError2()))
} else {
return Effect.succeedNone;
}
}),
);
const res = await Effect.runPromise(testEffect)
import { Cause, Data, Effect, pipe, Random } from "effect";
export class TestError1 extends Data.TaggedError("TestError1")<{}> {}
export class TestError2 extends Data.TaggedError("TestError2")<{}> {}
const testEffect = pipe(
Random.next,
Effect.flatMap((x) => {
if (x < 0.3) {
return Effect.failCause(Cause.fail(new TestError1()))
} else if (x < 0.6) {
return Effect.failCause(Cause.fail(new TestError2()))
} else {
return Effect.succeedNone;
}
}),
);
const res = await Effect.runPromise(testEffect)