| 5 | export type DbClient = ReturnType<typeof db>; |
| 6 | |
| 7 | export class Database extends Effect.Service<Database>()("Database", { |
| 8 | effect: Effect.gen(function* () { |
| 9 | return { |
| 10 | use: <T>(cb: (_: DbClient) => Promise<T>) => |
| 11 | Effect.tryPromise({ |
| 12 | try: () => cb(db()), |
| 13 | catch: (cause) => new DatabaseError({ cause }), |
| 14 | }), |
| 15 | }; |
| 16 | }), |
| 17 | }) {} |