1import * as Alchemy from "alchemy";
2import * as Cloudflare from "alchemy/Cloudflare";
3import * as Effect from "effect/Effect";
4
5export const Bucket = Cloudflare.R2.Bucket("DevBucket", { forceDestroy: true });
6
7export const Website = Cloudflare.Website.Vite("TanStackDevBindingsFixture", {
8 compatibility: {
9 flags: ["nodejs_compat"],
10 },
11 env: {
12 BUCKET: Bucket,
13 DEV_MARKER: "manual-dev",
14 },
15 memo: {
16 include: [
17 "src/**",
18 "package.json",
19 "tsconfig.json",
20 "vite.config.ts",
21 "alchemy.run.ts",
22 ],
23 },
24});
25
26export type WebsiteEnv = Cloudflare.InferEnv<typeof Website>;
27
28export default Alchemy.Stack(
29 "CloudflareTanStackDevBindingsFixture",
30 {
31 providers: Cloudflare.providers(),
32 state: Cloudflare.state(),
33 },
34 Effect.gen(function* () {
35 const website = yield* Website;
36
37 return {
38 url: website.url,
39 };
40 }),
41);