import { Effect, Random } from "effect";
class ErrorOne {
_tag = "CustomerExistsError";
}
class ErrorTwo {
_tag = "DatabaseError";
}
const program = Effect.gen(function* () {
// Generate two random numbers between 0 and 1
const n1 = yield* Random.next;
const n2 = yield* Random.next;
// Simulate an HTTP error
if (n1 < 0.5) {
yield* Effect.fail(new ErrorOne());
}
// Simulate a validation error
if (n2 < 0.5) {
yield* Effect.fail(new ErrorTwo());
}
return "some result";
});
import { Effect, Random } from "effect";
class ErrorOne {
_tag = "CustomerExistsError";
}
class ErrorTwo {
_tag = "DatabaseError";
}
const program = Effect.gen(function* () {
// Generate two random numbers between 0 and 1
const n1 = yield* Random.next;
const n2 = yield* Random.next;
// Simulate an HTTP error
if (n1 < 0.5) {
yield* Effect.fail(new ErrorOne());
}
// Simulate a validation error
if (n2 < 0.5) {
yield* Effect.fail(new ErrorTwo());
}
return "some result";
});