1import * as Alchemy from "alchemy";
2import * as Cloudflare from "alchemy/Cloudflare";
3import * as GitHub from "alchemy/GitHub";
4import { Layer } from "effect";
5import * as Effect from "effect/Effect";
6import DevBoxLive from "./src/DevBox.ts";
7import ReleaseService from "./src/ReleaseService.ts";
8
9export default Alchemy.Stack(
10 "Stack",
11 {
12 providers: Layer.mergeAll(Cloudflare.providers(), GitHub.providers()),
13 state: Cloudflare.state(),
14 },
15 Effect.gen(function* () {
16 const releaseService = yield* ReleaseService;
17
18 return {
19 releaseService: releaseService.url.as<string>(),
20 };
21 }).pipe(Effect.provide(DevBoxLive)),
22);