| 710 | * @since 4.0.0 |
| 711 | */ |
| 712 | export const layerAdd = <E = never, R = never>( |
| 713 | self: ConfigProvider | Effect.Effect<ConfigProvider, E, R>, |
| 714 | options?: { |
| 715 | readonly asPrimary?: boolean | undefined |
| 716 | } | undefined |
| 717 | ): Layer.Layer<never, E, Exclude<R, Scope>> => |
| 718 | Layer.effect(ConfigProvider)( |
| 719 | Effect.gen(function*() { |
| 720 | const current = yield* ConfigProvider |
| 721 | const configProvider = Effect.isEffect(self) ? yield* self : self |
| 722 | return options?.asPrimary ? orElse(configProvider, current) : orElse(current, configProvider) |
| 723 | }) |
| 724 | ) |
| 725 | |
| 726 | /** |
| 727 | * Creates a `ConfigProvider` backed by an in-memory JavaScript value |