Function
provideWith
(
self: Layer<any, any, any>,
that: Layer<any, any, any> | ReadonlyArray<Layer<any, any, any>>,
f: (
selfContext: Context.Context<any>,
thatContext: Context.Context<any>
) => Context.Context<any>
)
Source from the content-addressed store, hash-verified
| 1275 | * readonly query: (sql: string) => Effect.Effect<string> |
| 1276 | * }>()("Database") {} |
| 1277 | * |
| 1278 | * class Logger extends Context.Service<Logger, { |
| 1279 | * readonly log: (msg: string) => Effect.Effect<void> |
| 1280 | * }>()("Logger") {} |
| 1281 | * |
| 1282 | * const dbLayer = Layer.succeed(Database, { |
| 1283 | * query: Effect.fn("Database.query")((sql: string) => Effect.succeed("result")) |
| 1284 | * }) |
| 1285 | * const loggerLayer = Layer.succeed(Logger, { |
| 1286 | * log: Effect.fn("Logger.log")((_msg: string) => Effect.void) |
| 1287 | * }) |
| 1288 | * |
| 1289 | * const mergedLayer = Layer.merge(dbLayer, loggerLayer) |
| 1290 | * const program = Database.use((database) => database.query("SELECT 1")) |
| 1291 | * Effect.runSync(Effect.provide(program, mergedLayer)) // => "result" |
| 1292 | * ``` |
| 1293 | * |
| 1294 | * @see {@link mergeAll} for merging several layers at once |
| 1295 | * |
| 1296 | * @category zipping |
| 1297 | * @since 2.0.0 |
| 1298 | */ |
| 1299 | export const merge: { |
Tested by
no test coverage detected
Used in the wild real call sites across dependent graphs
searching dependent graphs…