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.gen(function* () { yield* providerRuntimeIngestion.start; yield* providerCommandReactor.start; yield* checkpointReactor.start; }); return { start, } satisfies OrchestrationReactorShape;}); export const OrchestrationReactorLive = Layer.effect( OrchestrationReactor, makeOrchestrationReactor,);
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.gen(function* () {
yield* providerRuntimeIngestion.start;
yield* providerCommandReactor.start;
yield* checkpointReactor.start;
});
return {
start,
} satisfies OrchestrationReactorShape;
});
export const OrchestrationReactorLive = Layer.effect(
OrchestrationReactor,
makeOrchestrationReactor,
);