11/**
22 * @since 0.0.1
33 */
4+ import * as Data from "effect/Data"
45import * as Effect from "effect/Effect"
56import * as F from "effect/Function"
67import type * as Scope from "effect/Scope"
@@ -10,13 +11,14 @@ import * as Db from "./Db.js"
1011import { mongoErrorOrDie } from "./internal/mongo-error.js"
1112import * as MongoError from "./MongoError.js"
1213
13- export type MongoClient = MongoClient_
14+ export class MongoClient extends Data . TaggedClass ( "MongoClient" ) < { client : MongoClient_ } > { }
1415
1516export const connect = (
1617 url : string ,
1718 options ?: MongoClientOptions
1819) : Effect . Effect < MongoClient , MongoError . MongoError > =>
1920 Effect . promise ( ( ) => MongoClient_ . connect ( url , options ) ) . pipe (
21+ Effect . map ( ( client ) => new MongoClient ( { client } ) ) ,
2022 Effect . catchAllDefect ( mongoErrorOrDie ( errorSource ( [ new URL ( url ) . host ] , "connect" ) ) )
2123 )
2224
@@ -25,7 +27,7 @@ export const close: {
2527 ( client : MongoClient , force ?: boolean ) : Effect . Effect < void , MongoError . MongoError >
2628} = F . dual (
2729 ( args ) => isMongoClient ( args [ 0 ] ) ,
28- ( client : MongoClient , force ?: boolean ) : Effect . Effect < void , MongoError . MongoError > =>
30+ ( { client } : MongoClient , force ?: boolean ) : Effect . Effect < void , MongoError . MongoError > =>
2931 Effect . promise ( ( ) => client . close ( force ) ) . pipe (
3032 Effect . catchAllDefect ( mongoErrorOrDie ( errorSource ( client . options . hosts . map ( ( x ) => x . host ?? "NO_HOST" ) , "close" ) ) )
3133 )
@@ -47,7 +49,8 @@ export const db: {
4749 ( client : MongoClient , dbName ?: string , options ?: DbOptions ) : Db . Db
4850} = F . dual (
4951 ( args ) => isMongoClient ( args [ 0 ] ) ,
50- ( client : MongoClient , dbName ?: string , options ?: DbOptions ) : Db . Db => new Db . Db ( { db : client . db ( dbName , options ) } )
52+ ( { client } : MongoClient , dbName ?: string , options ?: DbOptions ) : Db . Db =>
53+ new Db . Db ( { db : client . db ( dbName , options ) } )
5154)
5255
5356const isMongoClient = ( x : unknown ) => x instanceof MongoClient_
0 commit comments