@@ -30,6 +30,11 @@ const resolveHyperdriveUrl = Effect.tryPromise({
3030
3131const resolveConnectionString = resolveHyperdriveUrl . pipe (
3232 Effect . map ( ( url ) => url ?? ( server . DATABASE_URL || undefined ) ) ,
33+ Effect . flatMap ( ( url ) =>
34+ url
35+ ? Effect . succeed ( url )
36+ : Effect . fail ( new Error ( "No database connection string available (set DATABASE_URL or configure Hyperdrive)" ) ) ,
37+ ) ,
3338) ;
3439
3540// ---------------------------------------------------------------------------
@@ -47,22 +52,6 @@ const acquirePostgres = (connectionString: string) =>
4752const releasePostgres = ( { pool } : { pool : { end : ( ) => Promise < void > } } ) =>
4853 Effect . promise ( ( ) => pool . end ( ) ) . pipe ( Effect . orElseSucceed ( ( ) => undefined ) ) ;
4954
50- // ---------------------------------------------------------------------------
51- // PGlite — local dev fallback
52- // ---------------------------------------------------------------------------
53-
54- const acquirePglite = Effect . tryPromise ( async ( ) => {
55- const { PGlite } = await import ( "@electric-sql/pglite" ) ;
56- const { drizzle } = await import ( "drizzle-orm/pglite" ) ;
57- const client = new PGlite ( server . PGLITE_DATA_DIR ) ;
58- return { db : drizzle ( client , { schema } ) as DrizzleDb , client } ;
59- } ) ;
60-
61- const releasePglite = ( { client } : { client : { close ?: ( ) => Promise < void > } } ) =>
62- Effect . promise ( ( ) => client . close ?.( ) ?? Promise . resolve ( ) ) . pipe (
63- Effect . orElseSucceed ( ( ) => undefined ) ,
64- ) ;
65-
6655// ---------------------------------------------------------------------------
6756// Service
6857// ---------------------------------------------------------------------------
@@ -75,16 +64,10 @@ export class DbService extends Context.Tag("@executor/cloud/DbService")<
7564 this ,
7665 Effect . gen ( function * ( ) {
7766 const connectionString = yield * resolveConnectionString ;
78-
79- if ( connectionString ) {
80- const { db } = yield * Effect . acquireRelease (
81- acquirePostgres ( connectionString ) ,
82- releasePostgres ,
83- ) ;
84- return db ;
85- }
86-
87- const { db } = yield * Effect . acquireRelease ( acquirePglite , releasePglite ) ;
67+ const { db } = yield * Effect . acquireRelease (
68+ acquirePostgres ( connectionString ) ,
69+ releasePostgres ,
70+ ) ;
8871 return db ;
8972 } ) ,
9073 ) ;
0 commit comments