File size: 718 Bytes
4bbfe8b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import { Layer, ManagedRuntime } from "effect"
import { AppConfig } from "./config"
import { layer as databaseLayer } from "./database"
import { GeoStatRepo } from "./domain/geo"
import { ModelStatRepo } from "./domain/model"
import { ProviderStatRepo } from "./domain/provider"
import { RetentionStatRepo } from "./domain/retention"
const repoLayer = Layer.mergeAll(
ModelStatRepo.layer,
ProviderStatRepo.layer,
GeoStatRepo.layer,
RetentionStatRepo.layer,
).pipe(Layer.provide(databaseLayer))
export const layer = Layer.mergeAll(AppConfig.layer, databaseLayer, repoLayer)
export const runtime = ManagedRuntime.make(layer)
export type RuntimeServices = ManagedRuntime.ManagedRuntime.Services<typeof runtime>
|