1import * as Alchemy from "alchemy";
2import * as Cloudflare from "alchemy/Cloudflare";
3import * as Drizzle from "alchemy/Drizzle";
4import * as Effect from "effect/Effect";
5import * as Layer from "effect/Layer";
6
7import Api from "./src/Api.ts";
8import { Database } from "./src/Db.ts";
9
10export default Alchemy.Stack(
11 "CloudflareD1DrizzleExample",
12 {
13 providers: Layer.mergeAll(Cloudflare.providers(), Drizzle.providers()),
14 state: Alchemy.localState(),
15 },
16 Effect.gen(function* () {
17 const db = yield* Database;
18 const api = yield* Api;
19
20 return {
21 url: api.url.as<string>(),
22 databaseName: db.databaseName,
23 };
24 }),
25);