| 1 | import * as PgClient from "@effect/sql-pg/PgClient"; |
| 2 | import { env } from "cloudflare:workers"; |
| 3 | import * as Config from "effect/Config"; |
| 4 | import * as ConfigProvider from "effect/ConfigProvider"; |
| 5 | import * as Effect from "effect/Effect"; |
| 6 | import * as Layer from "effect/Layer"; |
| 7 | import * as Reactivity from "effect/reactivity/Reactivity"; |
| 8 | |
| 9 | const services = Layer.mergeAll( |
| 10 | ConfigProvider.layer(Effect.sync(() => ConfigProvider.fromUnknown(env))), |
| 11 | Reactivity.layer, |
| 12 | ); |
| 13 | |
| 14 | export 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); |