1import * as PgClient from "@effect/sql-pg/PgClient";
2import { env } from "cloudflare:workers";
3import * as Config from "effect/Config";
4import * as ConfigProvider from "effect/ConfigProvider";
5import * as Effect from "effect/Effect";
6import * as Layer from "effect/Layer";
7import * as Reactivity from "effect/reactivity/Reactivity";
8
9const services = Layer.mergeAll(
10 ConfigProvider.layer(Effect.sync(() => ConfigProvider.fromUnknown(env))),
11 Reactivity.layer,
12);
13
14export const fetchSql = () =>
15 Effect.gen(function* () {
16 const url = yield* Config.Redacted("TEST_POSTGRES_URL");
17 const client = yield* PgClient.make({ url });
18 const result = yield* client`SELECT 1`;
19 return result;
20 }).pipe(Effect.provide(services), Effect.scoped, Effect.runPromise);