class Faker extends Context.Tag("Faker")<Faker, {
readonly email: Effect.Effect<() => string, never, never>
readonly name: Effect.Effect<() => string, never, never>
readonly userId: Effect.Effect<() => string, never, never>
}>() {
}
const FakerLive = Layer.succeed(Faker, Faker.of({
email: Effect.succeed(faker.internet.email),
name: Effect.succeed(faker.person.fullName),
userId: Effect.succeed(faker.string.uuid)
}))
Command.withHandler(() => {
return Effect.gen(function* () {
const faker = yield* Faker
const userIdGen = yield* faker.userId
const userId = userIdGen()
class Faker extends Context.Tag("Faker")<Faker, {
readonly email: Effect.Effect<() => string, never, never>
readonly name: Effect.Effect<() => string, never, never>
readonly userId: Effect.Effect<() => string, never, never>
}>() {
}
const FakerLive = Layer.succeed(Faker, Faker.of({
email: Effect.succeed(faker.internet.email),
name: Effect.succeed(faker.person.fullName),
userId: Effect.succeed(faker.string.uuid)
}))
Command.withHandler(() => {
return Effect.gen(function* () {
const faker = yield* Faker
const userIdGen = yield* faker.userId
const userId = userIdGen()