/**
* Execute a function within a database transaction
* Automatically rolls back on any error
*/
withTransaction: <R, E, A>(operation: Effect.Effect<A, E, R>) => {
return Effect.gen(function* () {
const sql = yield* SqlClient.SqlClient;
return yield* sql.withTransaction(operation);
});
},
/**
* Execute a function within a database transaction
* Automatically rolls back on any error
*/
withTransaction: <R, E, A>(operation: Effect.Effect<A, E, R>) => {
return Effect.gen(function* () {
const sql = yield* SqlClient.SqlClient;
return yield* sql.withTransaction(operation);
});
},