(
tag: Context.Key<Id, S>,
service:
| RpcMiddlewareClient<Id[TypeId]["error"]["Type"], Id[TypeId]["clientError"], R>
| Effect.Effect<RpcMiddlewareClient<Id[TypeId]["error"]["Type"], Id[TypeId]["clientError"], R>, EX, RX>
)
| 322 | * @since 4.0.0 |
| 323 | */ |
| 324 | export const layerClient = <Id extends AnyId, S, R, EX = never, RX = never>( |
| 325 | tag: Context.Key<Id, S>, |
| 326 | service: |
| 327 | | RpcMiddlewareClient<Id[TypeId]["error"]["Type"], Id[TypeId]["clientError"], R> |
| 328 | | Effect.Effect<RpcMiddlewareClient<Id[TypeId]["error"]["Type"], Id[TypeId]["clientError"], R>, EX, RX> |
| 329 | ): Layer.Layer<ForClient<Id>, EX, R | Exclude<RX, Scope>> => |
| 330 | Layer.effectContext(Effect.gen(function*() { |
| 331 | const services = (yield* Effect.context<R | Scope>()).pipe( |
| 332 | Context.omit(Scope) |
| 333 | ) as Context.Context<R> |
| 334 | const middleware = Effect.isEffect(service) ? yield* service : service |
| 335 | return Context.makeUnsafe( |
| 336 | new Map([[ |
| 337 | `${tag.key}/Client`, |
| 338 | (options: any) => |
| 339 | Effect.updateContext( |
| 340 | middleware(options), |
| 341 | (requestContext) => Context.merge(services, requestContext) |
| 342 | ) |
| 343 | ]]) |
| 344 | ) |
| 345 | })) |
nothing calls this directly
no test coverage detected