1import * as Alchemy from "alchemy";
2import * as Cloudflare from "alchemy/Cloudflare";
3import * as Effect from "effect/Effect";
4import type { Counter } from "./src/worker.ts";
5
6export default Alchemy.Stack(
7 "CloudflareViteDoFixture",
8 {
9 providers: Cloudflare.providers(),
10 state: Cloudflare.state(),
11 },
12 Effect.gen(function* () {
13 const worker = yield* Cloudflare.Website.Vite("ViteDoFixture", {
14 assets: {
15 runWorkerFirst: ["/api/*"],
16 },
17 env: {
18 Counter: Cloudflare.DurableObject<Counter>("Counter", {
19 className: "Counter",
20 }),
21 },
22 memo: {
23 include: ["index.html", "src/**", "package.json", "vite.config.ts"],
24 },
25 });
26
27 return {
28 url: worker.url,
29 };
30 }),
31);