30 lines · 1.0 KB · TypeScript
RawDownload
import { Effect, Layer } from "effect"; import {  OrchestrationReactor,  type OrchestrationReactorShape,} from "../Services/OrchestrationReactor.ts";import { CheckpointReactor } from "../Services/CheckpointReactor.ts";import { ProviderCommandReactor } from "../Services/ProviderCommandReactor.ts";import { ProviderRuntimeIngestionService } from "../Services/ProviderRuntimeIngestion.ts"; export const makeOrchestrationReactor = Effect.gen(function* () {  const providerRuntimeIngestion = yield* ProviderRuntimeIngestionService;  const providerCommandReactor = yield* ProviderCommandReactor;  const checkpointReactor = yield* CheckpointReactor;   const start: OrchestrationReactorShape["start"] = Effect.fn("start")(function* () {    yield* providerRuntimeIngestion.start();    yield* providerCommandReactor.start();    yield* checkpointReactor.start();  });   return {    start,  } satisfies OrchestrationReactorShape;}); export const OrchestrationReactorLive = Layer.effect(  OrchestrationReactor,  makeOrchestrationReactor,);