MCPcopy Create free account
hub / github.com/effect-app/libs / provideWith

Function provideWith

repos/effect/packages/effect/src/Layer.ts:1277–1296  ·  view source on GitHub ↗
(
  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 */
1299export const merge: {

Callers 1

Layer.tsFile · 0.85

Calls 6

fromBuildFunction · 0.85
mergeAllEffectFunction · 0.85
buildMethod · 0.80
pipeMethod · 0.65
mapMethod · 0.65
fFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…