| 198 | * @experimental |
| 199 | */ |
| 200 | export const fromRecord = < |
| 201 | const Layers extends Record<string, Layer.Layer<any, any, any>>, |
| 202 | const Preload extends boolean = false |
| 203 | >( |
| 204 | layers: Layers, |
| 205 | options?: { |
| 206 | readonly idleTimeToLive?: Duration.DurationInput | undefined |
| 207 | readonly preload?: Preload | undefined |
| 208 | } | undefined |
| 209 | ): Effect.Effect< |
| 210 | LayerMap< |
| 211 | keyof Layers, |
| 212 | Layers[keyof Layers] extends Layer.Layer<infer _A, infer _E, infer _R> ? _A : never, |
| 213 | Preload extends true ? never : Layers[keyof Layers] extends Layer.Layer<infer _A, infer _E, infer _R> ? _E : never |
| 214 | >, |
| 215 | Preload extends true ? never : Layers[keyof Layers] extends Layer.Layer<infer _A, infer _E, infer _R> ? _E : never, |
| 216 | Scope.Scope | (Layers[keyof Layers] extends Layer.Layer<infer _A, infer _E, infer _R> ? _R : never) |
| 217 | > => |
| 218 | make((key: keyof Layers) => layers[key], { |
| 219 | ...options, |
| 220 | preloadKeys: options?.preload ? Object.keys(layers) : undefined |
| 221 | }) as any |
| 222 | |
| 223 | /** |
| 224 | * @since 3.14.0 |