// Implementation functions might live in different files
const queryLive = (sql: string) =>
Effect.gen(function* () {
const config = yield* Config
const { connection } = yield* config.getConfig
return { result: `Results from ${connection}` }
})
// Live layer gets created from the various implementation functions
const DatabaseLive = Layer.effect(
Database,
Effect.gen(function* () {
const config = yield* Config
return {
// provideToResultOfFn does not currently exist but would transform
// queryLive to remove the Requirement from the returned Effect
query: provideToResultOfFn(Config, queryLive)
}
})
)
// Implementation functions might live in different files
const queryLive = (sql: string) =>
Effect.gen(function* () {
const config = yield* Config
const { connection } = yield* config.getConfig
return { result: `Results from ${connection}` }
})
// Live layer gets created from the various implementation functions
const DatabaseLive = Layer.effect(
Database,
Effect.gen(function* () {
const config = yield* Config
return {
// provideToResultOfFn does not currently exist but would transform
// queryLive to remove the Requirement from the returned Effect
query: provideToResultOfFn(Config, queryLive)
}
})
)