| 240 | * @since 3.14.0 |
| 241 | */ |
| 242 | export const fromRecord = < |
| 243 | const Layers extends Record<string, Layer.Layer<any, any, any>>, |
| 244 | const Preload extends boolean = false |
| 245 | >( |
| 246 | layers: Layers, |
| 247 | options?: { |
| 248 | readonly idleTimeToLive?: IdleTimeToLiveInput<keyof Layers> | undefined |
| 249 | readonly preload?: Preload | undefined |
| 250 | } | undefined |
| 251 | ): Effect.Effect< |
| 252 | LayerMap< |
| 253 | keyof Layers, |
| 254 | Layer.Success<Layers[keyof Layers]>, |
| 255 | Layer.Error<Layers[keyof Layers]> |
| 256 | >, |
| 257 | Preload extends true ? Layer.Error<Layers[keyof Layers]> : never, |
| 258 | Scope.Scope | (Layers[keyof Layers] extends Layer.Layer<infer _A, infer _E, infer _R> ? _R : never) |
| 259 | > => |
| 260 | make((key: keyof Layers) => layers[key], { |
| 261 | ...options, |
| 262 | preloadKeys: options?.preload ? Object.keys(layers) : undefined |
| 263 | }) as any |
| 264 | |
| 265 | /** |
| 266 | * Service class shape produced by `LayerMap.Service`. |