const myReadFile = Effect.gen(function* () {
const fs = yield* FileSystem;
// ... do something here
return "file-contents"
})
class MyService extends Context.Tag("MyService")<{
doSomething: () => Effect.Effect<string, never, never>
}>() {}
// Create a layer so that we can use MyService.
function createMyService() {
return Layer.effect(
MyService,
Effect.gen(function* () {
const fs = yield* FileSystem
return {
doSomething: () => Effect.gen(function* () {
const contents = yield* myReadFile("my-file.txt")
return contents
})
}
})
)
}
const myReadFile = Effect.gen(function* () {
const fs = yield* FileSystem;
// ... do something here
return "file-contents"
})
class MyService extends Context.Tag("MyService")<{
doSomething: () => Effect.Effect<string, never, never>
}>() {}
// Create a layer so that we can use MyService.
function createMyService() {
return Layer.effect(
MyService,
Effect.gen(function* () {
const fs = yield* FileSystem
return {
doSomething: () => Effect.gen(function* () {
const contents = yield* myReadFile("my-file.txt")
return contents
})
}
})
)
}