1import * as Alchemy from "alchemy";
2import * as Cloudflare from "alchemy/Cloudflare";
3import { Backend } from "@monorepo-multi-stack/backend";
4import * as Effect from "effect/Effect";
5
6export default Alchemy.Stack(
7 "Frontend",
8 {
9 providers: Cloudflare.providers(),
10 state: Cloudflare.state(),
11 },
12 Effect.gen(function* () {
13 // reference the prod stage of the backend
14 const backend = yield* Backend;
15
16 const website = yield* Cloudflare.Website.Vite("Website", {
17 env: {
18 VITE_API_URL: backend.url,
19 },
20 });
21
22 return {
23 url: website.url.as<string>(),
24 };
25 }),
26);