1import * as Alchemy from "alchemy";
2import * as AWS from "alchemy/AWS";
3import * as Effect from "effect/Effect";
4
5export default Alchemy.Stack(
6 "AwsWebsiteWakuExample",
7 {
8 providers: AWS.providers(),
9 state: AWS.state(),
10 },
11 Effect.gen(function* () {
12 const site = yield* AWS.Website.Waku("WakuSite", {
13 // Only hash the files that affect the build, so unchanged sources
14 // skip the Waku build (and the deploy) entirely.
15 memo: {
16 include: ["src/**", "public/**", "package.json", "waku.config.ts"],
17 },
18 forceDestroy: true,
19 env: {
20 GREETING: "Hello from Waku on AWS!",
21 },
22 });
23
24 return {
25 url: site.url,
26 };
27 }),
28);