effect-mongodb 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/Db.js CHANGED
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.listCollections = exports.dropCollection = exports.documentCollection = exports.collection = void 0;
6
+ exports.listCollections = exports.dropCollection = exports.documentCollection = exports.collection = exports.Db = void 0;
7
+ var Data = _interopRequireWildcard(require("effect/Data"));
7
8
  var Effect = _interopRequireWildcard(require("effect/Effect"));
8
9
  var F = _interopRequireWildcard(require("effect/Function"));
9
- var _mongodb = require("mongodb");
10
10
  var DocumentCollection = _interopRequireWildcard(require("./DocumentCollection.js"));
11
11
  var _mongoError = require("./internal/mongo-error.js");
12
12
  var ListCollectionsCursor = _interopRequireWildcard(require("./ListCollectionsCursor.js"));
@@ -17,18 +17,20 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
17
17
  * @since 0.0.1
18
18
  */
19
19
 
20
+ class Db extends /*#__PURE__*/Data.TaggedClass("Db") {}
21
+ exports.Db = Db;
20
22
  const documentCollection = exports.documentCollection = /*#__PURE__*/F.dual(args => isDb(args[0]), (db, name) => new DocumentCollection.DocumentCollectionImpl({
21
- collection: db.collection(name)
23
+ collection: db.db.collection(name)
22
24
  }));
23
25
  const collection = exports.collection = /*#__PURE__*/F.dual(args => isDb(args[0]), (db, name, schema) => DocumentCollection.typed(documentCollection(db, name), schema));
24
26
  const listCollections = exports.listCollections = /*#__PURE__*/F.dual(args => isDb(args[0]), (db, filter, options) => new ListCollectionsCursor.ListCollectionsCursorImpl({
25
- cursor: db.listCollections(filter, options)
27
+ cursor: db.db.listCollections(filter, options)
26
28
  }));
27
- const dropCollection = exports.dropCollection = /*#__PURE__*/F.dual(args => isDb(args[0]), (db, name, options) => F.pipe(Effect.promise(() => db.dropCollection(name, options)), Effect.catchAllDefect((0, _mongoError.mongoErrorOrDie)(errorSource(db, "dropCollection")))));
28
- const isDb = x => x instanceof _mongodb.Db;
29
+ const dropCollection = exports.dropCollection = /*#__PURE__*/F.dual(args => isDb(args[0]), (db, name, options) => F.pipe(Effect.promise(() => db.db.dropCollection(name, options)), Effect.catchAllDefect((0, _mongoError.mongoErrorOrDie)(errorSource(db, "dropCollection")))));
30
+ const isDb = x => x instanceof Db;
29
31
  const errorSource = (db, functionName) => new MongoError.DbErrorSource({
30
32
  module: "Db",
31
33
  functionName,
32
- db: db.databaseName
34
+ db: db.db.databaseName
33
35
  });
34
36
  //# sourceMappingURL=Db.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Db.js","names":["Effect","_interopRequireWildcard","require","F","_mongodb","DocumentCollection","_mongoError","ListCollectionsCursor","MongoError","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","documentCollection","exports","dual","args","isDb","db","name","DocumentCollectionImpl","collection","schema","typed","listCollections","filter","options","ListCollectionsCursorImpl","cursor","dropCollection","pipe","promise","catchAllDefect","mongoErrorOrDie","errorSource","x","Db","functionName","DbErrorSource","module","databaseName"],"sources":["../../src/Db.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Db.js","names":["Data","_interopRequireWildcard","require","Effect","F","DocumentCollection","_mongoError","ListCollectionsCursor","MongoError","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Db","TaggedClass","exports","documentCollection","dual","args","isDb","db","name","DocumentCollectionImpl","collection","schema","typed","listCollections","filter","options","ListCollectionsCursorImpl","cursor","dropCollection","pipe","promise","catchAllDefect","mongoErrorOrDie","errorSource","x","functionName","DbErrorSource","module","databaseName"],"sources":["../../src/Db.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,IAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,CAAA,GAAAH,uBAAA,CAAAC,OAAA;AAIA,IAAAG,kBAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,qBAAA,GAAAN,uBAAA,CAAAC,OAAA;AACA,IAAAM,UAAA,GAAAP,uBAAA,CAAAC,OAAA;AAA6C,SAAAO,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAT,wBAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAZ7C;;;;AAcM,MAAOW,EAAG,sBAAQ7B,IAAI,CAAC8B,WAAW,CAAC,IAAI,CAAc;AAAAC,OAAA,CAAAF,EAAA,GAAAA,EAAA;AAEpD,MAAMG,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,gBAG3B5B,CAAC,CAAC6B,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CAACE,EAAM,EAAEC,IAAY,KACnB,IAAIhC,kBAAkB,CAACiC,sBAAsB,CAAC;EAC5CC,UAAU,EAAEH,EAAE,CAACA,EAAE,CAACG,UAAU,CAACF,IAAI;CAClC,CAAC,CACL;AAEM,MAAME,UAAU,GAAAR,OAAA,CAAAQ,UAAA,gBAUnBnC,CAAC,CAAC6B,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CACEE,EAAM,EACNC,IAAY,EACZG,MAA8B,KACKnC,kBAAkB,CAACoC,KAAK,CAACT,kBAAkB,CAACI,EAAE,EAAEC,IAAI,CAAC,EAAEG,MAAM,CAAC,CACpG;AAEM,MAAME,eAAe,GAAAX,OAAA,CAAAW,eAAA,gBAsBxBtC,CAAC,CAAC6B,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CAACE,EAAM,EAAEO,MAAiB,EAAEC,OAAgC,KAC1D,IAAIrC,qBAAqB,CAACsC,yBAAyB,CAAC;EAAEC,MAAM,EAAEV,EAAE,CAACA,EAAE,CAACM,eAAe,CAACC,MAAM,EAAEC,OAAO;AAAC,CAAE,CAAC,CAC1G;AAEM,MAAMG,cAAc,GAAAhB,OAAA,CAAAgB,cAAA,gBAKvB3C,CAAC,CAAC6B,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CAACE,EAAM,EAAEC,IAAY,EAAEO,OAA+B,KACpDxC,CAAC,CAAC4C,IAAI,CACJ7C,MAAM,CAAC8C,OAAO,CAAC,MAAMb,EAAE,CAACA,EAAE,CAACW,cAAc,CAACV,IAAI,EAAEO,OAAO,CAAC,CAAC,EACzDzC,MAAM,CAAC+C,cAAc,CAAC,IAAAC,2BAAe,EAACC,WAAW,CAAChB,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAC1E,CACJ;AAED,MAAMD,IAAI,GAAIkB,CAAU,IAAKA,CAAC,YAAYxB,EAAE;AAE5C,MAAMuB,WAAW,GAAGA,CAAChB,EAAM,EAAEkB,YAAoB,KAC/C,IAAI9C,UAAU,CAAC+C,aAAa,CAAC;EAAEC,MAAM,EAAE,IAAI;EAAEF,YAAY;EAAElB,EAAE,EAAEA,EAAE,CAACA,EAAE,CAACqB;AAAY,CAAE,CAAC","ignoreList":[]}
@@ -3,10 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.db = exports.connectScoped = exports.connect = exports.close = void 0;
6
+ exports.db = exports.connectScoped = exports.connect = exports.close = exports.MongoClient = void 0;
7
+ var Data = _interopRequireWildcard(require("effect/Data"));
7
8
  var Effect = _interopRequireWildcard(require("effect/Effect"));
8
9
  var F = _interopRequireWildcard(require("effect/Function"));
9
10
  var _mongodb = require("mongodb");
11
+ var Db = _interopRequireWildcard(require("./Db.js"));
10
12
  var _mongoError = require("./internal/mongo-error.js");
11
13
  var MongoError = _interopRequireWildcard(require("./MongoError.js"));
12
14
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
@@ -15,13 +17,23 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
15
17
  * @since 0.0.1
16
18
  */
17
19
 
18
- const connect = (url, options) => Effect.promise(() => _mongodb.MongoClient.connect(url, options)).pipe(Effect.catchAllDefect((0, _mongoError.mongoErrorOrDie)(errorSource([new URL(url).host], "connect"))));
20
+ class MongoClient extends /*#__PURE__*/Data.TaggedClass("MongoClient") {}
21
+ exports.MongoClient = MongoClient;
22
+ const connect = (url, options) => Effect.promise(() => _mongodb.MongoClient.connect(url, options)).pipe(Effect.map(client => new MongoClient({
23
+ client
24
+ })), Effect.catchAllDefect((0, _mongoError.mongoErrorOrDie)(errorSource([new URL(url).host], "connect"))));
19
25
  exports.connect = connect;
20
- const close = exports.close = /*#__PURE__*/F.dual(args => isMongoClient(args[0]), (client, force) => Effect.promise(() => client.close(force)).pipe(Effect.catchAllDefect((0, _mongoError.mongoErrorOrDie)(errorSource(client.options.hosts.map(x => x.host ?? "NO_HOST"), "close")))));
26
+ const close = exports.close = /*#__PURE__*/F.dual(args => isMongoClient(args[0]), ({
27
+ client
28
+ }, force) => Effect.promise(() => client.close(force)).pipe(Effect.catchAllDefect((0, _mongoError.mongoErrorOrDie)(errorSource(client.options.hosts.map(x => x.host ?? "NO_HOST"), "close")))));
21
29
  const connectScoped = (url, options) => Effect.acquireRelease(connect(url, options), client => close(client, options?.forceClose).pipe(Effect.orDie));
22
30
  exports.connectScoped = connectScoped;
23
- const db = exports.db = /*#__PURE__*/F.dual(args => isMongoClient(args[0]), (client, dbName, options) => client.db(dbName, options));
24
- const isMongoClient = x => x instanceof _mongodb.MongoClient;
31
+ const db = exports.db = /*#__PURE__*/F.dual(args => isMongoClient(args[0]), ({
32
+ client
33
+ }, dbName, options) => new Db.Db({
34
+ db: client.db(dbName, options)
35
+ }));
36
+ const isMongoClient = x => x instanceof MongoClient;
25
37
  const errorSource = (hosts, functionName) => new MongoError.ClientErrorSource({
26
38
  module: "MongoClient",
27
39
  functionName,
@@ -1 +1 @@
1
- {"version":3,"file":"MongoClient.js","names":["Effect","_interopRequireWildcard","require","F","_mongodb","_mongoError","MongoError","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","connect","url","options","promise","MongoClient_","pipe","catchAllDefect","mongoErrorOrDie","errorSource","URL","host","exports","close","dual","args","isMongoClient","client","force","hosts","map","x","connectScoped","acquireRelease","forceClose","orDie","db","dbName","functionName","ClientErrorSource","module"],"sources":["../../src/MongoClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MongoClient.js","names":["Data","_interopRequireWildcard","require","Effect","F","_mongodb","Db","_mongoError","MongoError","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MongoClient","TaggedClass","exports","connect","url","options","promise","MongoClient_","pipe","map","client","catchAllDefect","mongoErrorOrDie","errorSource","URL","host","close","dual","args","isMongoClient","force","hosts","x","connectScoped","acquireRelease","forceClose","orDie","db","dbName","functionName","ClientErrorSource","module"],"sources":["../../src/MongoClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.setCurrentVersion = exports.getCurrentVersion = void 0;
7
- let moduleVersion = "0.1.4";
7
+ let moduleVersion = "0.2.0";
8
8
  const getCurrentVersion = () => moduleVersion;
9
9
  exports.getCurrentVersion = getCurrentVersion;
10
10
  const setCurrentVersion = version => {
package/dist/dts/Db.d.ts CHANGED
@@ -1,14 +1,17 @@
1
- /**
2
- * @since 0.0.1
3
- */
4
1
  import * as Effect from "effect/Effect";
5
2
  import type * as Schema from "effect/Schema";
6
- import type { Document, DropCollectionOptions, ListCollectionsOptions } from "mongodb";
7
- import { Db } from "mongodb";
3
+ import type { Db as Db_, Document, DropCollectionOptions, ListCollectionsOptions } from "mongodb";
8
4
  import type * as Collection from "./Collection.js";
9
5
  import * as DocumentCollection from "./DocumentCollection.js";
10
6
  import * as ListCollectionsCursor from "./ListCollectionsCursor.js";
11
7
  import * as MongoError from "./MongoError.js";
8
+ declare const Db_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
9
+ readonly _tag: "Db";
10
+ };
11
+ export declare class Db extends Db_base<{
12
+ db: Db_;
13
+ }> {
14
+ }
12
15
  export declare const documentCollection: {
13
16
  (name: string): (db: Db) => DocumentCollection.DocumentCollection;
14
17
  (db: Db, name: string): DocumentCollection.DocumentCollection;
@@ -40,4 +43,5 @@ export declare const dropCollection: {
40
43
  (db: Db, name: string): Effect.Effect<boolean, MongoError.MongoError>;
41
44
  (db: Db, name: string, options: DropCollectionOptions): Effect.Effect<boolean, MongoError.MongoError>;
42
45
  };
46
+ export {};
43
47
  //# sourceMappingURL=Db.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,28 @@
1
- /**
2
- * @since 0.0.1
3
- */
4
1
  import * as Effect from "effect/Effect";
5
2
  import type * as Scope from "effect/Scope";
6
- import type { Db, DbOptions, MongoClientOptions } from "mongodb";
3
+ import type { DbOptions, MongoClientOptions } from "mongodb";
7
4
  import { MongoClient as MongoClient_ } from "mongodb";
5
+ import * as Db from "./Db.js";
8
6
  import * as MongoError from "./MongoError.js";
9
- export type MongoClient = MongoClient_;
7
+ declare const MongoClient_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => Readonly<A> & {
8
+ readonly _tag: "MongoClient";
9
+ };
10
+ export declare class MongoClient extends MongoClient_base<{
11
+ client: MongoClient_;
12
+ }> {
13
+ }
10
14
  export declare const connect: (url: string, options?: MongoClientOptions) => Effect.Effect<MongoClient, MongoError.MongoError>;
11
15
  export declare const close: {
12
16
  (force?: boolean): (client: MongoClient) => Effect.Effect<void, MongoError.MongoError>;
13
17
  (client: MongoClient, force?: boolean): Effect.Effect<void, MongoError.MongoError>;
14
18
  };
15
- export declare const connectScoped: (url: string, options?: MongoClientOptions & {
19
+ export type MongoClientScopedOptions = MongoClientOptions & {
16
20
  forceClose?: boolean;
17
- }) => Effect.Effect<MongoClient, MongoError.MongoError, Scope.Scope>;
21
+ };
22
+ export declare const connectScoped: (url: string, options?: MongoClientScopedOptions) => Effect.Effect<MongoClient, MongoError.MongoError, Scope.Scope>;
18
23
  export declare const db: {
19
- (dbName?: string, options?: DbOptions): (client: MongoClient) => Db;
20
- (client: MongoClient, dbName?: string, options?: DbOptions): Db;
24
+ (dbName?: string, options?: DbOptions): (client: MongoClient) => Db.Db;
25
+ (client: MongoClient, dbName?: string, options?: DbOptions): Db.Db;
21
26
  };
27
+ export {};
22
28
  //# sourceMappingURL=MongoClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MongoClient.d.ts","sourceRoot":"","sources":["../../src/MongoClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,SAAS,CAAA;AAErD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C,MAAM,MAAM,WAAW,GAAG,YAAY,CAAA;AAEtC,eAAO,MAAM,OAAO,QACb,MAAM,YACD,kBAAkB,KAC3B,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,CAGhD,CAAA;AAEH,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;IACtF,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;CAOnF,CAAA;AAED,eAAO,MAAM,aAAa,QACnB,MAAM,YACD,kBAAkB,GAAG;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,KACtD,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAI7D,CAAA;AAEH,eAAO,MAAM,EAAE,EAAE;IACf,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,EAAE,CAAA;IACnE,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,GAAG,EAAE,CAAA;CAIhE,CAAA"}
1
+ {"version":3,"file":"MongoClient.d.ts","sourceRoot":"","sources":["../../src/MongoClient.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC5D,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAE7B,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;;;;AAE7C,qBAAa,WAAY,SAAQ,iBAAgC;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC;CAAG;AAE7F,eAAO,MAAM,OAAO,QACb,MAAM,YACD,kBAAkB,KAC3B,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,CAIhD,CAAA;AAEH,eAAO,MAAM,KAAK,EAAE;IAClB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;IACtF,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;CAOnF,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,GAAG;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAEpF,eAAO,MAAM,aAAa,QACnB,MAAM,YACD,wBAAwB,KACjC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAI7D,CAAA;AAEH,eAAO,MAAM,EAAE,EAAE;IACf,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,EAAE,CAAC,EAAE,CAAA;IACtE,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC,EAAE,CAAA;CAKnE,CAAA"}
package/dist/esm/Db.js CHANGED
@@ -1,25 +1,26 @@
1
1
  /**
2
2
  * @since 0.0.1
3
3
  */
4
+ import * as Data from "effect/Data";
4
5
  import * as Effect from "effect/Effect";
5
6
  import * as F from "effect/Function";
6
- import { Db } from "mongodb";
7
7
  import * as DocumentCollection from "./DocumentCollection.js";
8
8
  import { mongoErrorOrDie } from "./internal/mongo-error.js";
9
9
  import * as ListCollectionsCursor from "./ListCollectionsCursor.js";
10
10
  import * as MongoError from "./MongoError.js";
11
+ export class Db extends /*#__PURE__*/Data.TaggedClass("Db") {}
11
12
  export const documentCollection = /*#__PURE__*/F.dual(args => isDb(args[0]), (db, name) => new DocumentCollection.DocumentCollectionImpl({
12
- collection: db.collection(name)
13
+ collection: db.db.collection(name)
13
14
  }));
14
15
  export const collection = /*#__PURE__*/F.dual(args => isDb(args[0]), (db, name, schema) => DocumentCollection.typed(documentCollection(db, name), schema));
15
16
  export const listCollections = /*#__PURE__*/F.dual(args => isDb(args[0]), (db, filter, options) => new ListCollectionsCursor.ListCollectionsCursorImpl({
16
- cursor: db.listCollections(filter, options)
17
+ cursor: db.db.listCollections(filter, options)
17
18
  }));
18
- export const dropCollection = /*#__PURE__*/F.dual(args => isDb(args[0]), (db, name, options) => F.pipe(Effect.promise(() => db.dropCollection(name, options)), Effect.catchAllDefect(mongoErrorOrDie(errorSource(db, "dropCollection")))));
19
+ export const dropCollection = /*#__PURE__*/F.dual(args => isDb(args[0]), (db, name, options) => F.pipe(Effect.promise(() => db.db.dropCollection(name, options)), Effect.catchAllDefect(mongoErrorOrDie(errorSource(db, "dropCollection")))));
19
20
  const isDb = x => x instanceof Db;
20
21
  const errorSource = (db, functionName) => new MongoError.DbErrorSource({
21
22
  module: "Db",
22
23
  functionName,
23
- db: db.databaseName
24
+ db: db.db.databaseName
24
25
  });
25
26
  //# sourceMappingURL=Db.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Db.js","names":["Effect","F","Db","DocumentCollection","mongoErrorOrDie","ListCollectionsCursor","MongoError","documentCollection","dual","args","isDb","db","name","DocumentCollectionImpl","collection","schema","typed","listCollections","filter","options","ListCollectionsCursorImpl","cursor","dropCollection","pipe","promise","catchAllDefect","errorSource","x","functionName","DbErrorSource","module","databaseName"],"sources":["../../src/Db.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,CAAC,MAAM,iBAAiB;AAGpC,SAASC,EAAE,QAAQ,SAAS;AAE5B,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAC7D,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,OAAO,KAAKC,qBAAqB,MAAM,4BAA4B;AACnE,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C,OAAO,MAAMC,kBAAkB,gBAG3BN,CAAC,CAACO,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CAACE,EAAM,EAAEC,IAAY,KACnB,IAAIT,kBAAkB,CAACU,sBAAsB,CAAC;EAC5CC,UAAU,EAAEH,EAAE,CAACG,UAAU,CAACF,IAAI;CAC/B,CAAC,CACL;AAED,OAAO,MAAME,UAAU,gBAUnBb,CAAC,CAACO,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CACEE,EAAM,EACNC,IAAY,EACZG,MAA8B,KACKZ,kBAAkB,CAACa,KAAK,CAACT,kBAAkB,CAACI,EAAE,EAAEC,IAAI,CAAC,EAAEG,MAAM,CAAC,CACpG;AAED,OAAO,MAAME,eAAe,gBAsBxBhB,CAAC,CAACO,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CAACE,EAAM,EAAEO,MAAiB,EAAEC,OAAgC,KAC1D,IAAId,qBAAqB,CAACe,yBAAyB,CAAC;EAAEC,MAAM,EAAEV,EAAE,CAACM,eAAe,CAACC,MAAM,EAAEC,OAAO;AAAC,CAAE,CAAC,CACvG;AAED,OAAO,MAAMG,cAAc,gBAKvBrB,CAAC,CAACO,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CAACE,EAAM,EAAEC,IAAY,EAAEO,OAA+B,KACpDlB,CAAC,CAACsB,IAAI,CACJvB,MAAM,CAACwB,OAAO,CAAC,MAAMb,EAAE,CAACW,cAAc,CAACV,IAAI,EAAEO,OAAO,CAAC,CAAC,EACtDnB,MAAM,CAACyB,cAAc,CAACrB,eAAe,CAACsB,WAAW,CAACf,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAC1E,CACJ;AAED,MAAMD,IAAI,GAAIiB,CAAU,IAAKA,CAAC,YAAYzB,EAAE;AAE5C,MAAMwB,WAAW,GAAGA,CAACf,EAAM,EAAEiB,YAAoB,KAC/C,IAAItB,UAAU,CAACuB,aAAa,CAAC;EAAEC,MAAM,EAAE,IAAI;EAAEF,YAAY;EAAEjB,EAAE,EAAEA,EAAE,CAACoB;AAAY,CAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Db.js","names":["Data","Effect","F","DocumentCollection","mongoErrorOrDie","ListCollectionsCursor","MongoError","Db","TaggedClass","documentCollection","dual","args","isDb","db","name","DocumentCollectionImpl","collection","schema","typed","listCollections","filter","options","ListCollectionsCursorImpl","cursor","dropCollection","pipe","promise","catchAllDefect","errorSource","x","functionName","DbErrorSource","module","databaseName"],"sources":["../../src/Db.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,CAAC,MAAM,iBAAiB;AAIpC,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAC7D,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,OAAO,KAAKC,qBAAqB,MAAM,4BAA4B;AACnE,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C,OAAM,MAAOC,EAAG,sBAAQP,IAAI,CAACQ,WAAW,CAAC,IAAI,CAAc;AAE3D,OAAO,MAAMC,kBAAkB,gBAG3BP,CAAC,CAACQ,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CAACE,EAAM,EAAEC,IAAY,KACnB,IAAIX,kBAAkB,CAACY,sBAAsB,CAAC;EAC5CC,UAAU,EAAEH,EAAE,CAACA,EAAE,CAACG,UAAU,CAACF,IAAI;CAClC,CAAC,CACL;AAED,OAAO,MAAME,UAAU,gBAUnBd,CAAC,CAACQ,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CACEE,EAAM,EACNC,IAAY,EACZG,MAA8B,KACKd,kBAAkB,CAACe,KAAK,CAACT,kBAAkB,CAACI,EAAE,EAAEC,IAAI,CAAC,EAAEG,MAAM,CAAC,CACpG;AAED,OAAO,MAAME,eAAe,gBAsBxBjB,CAAC,CAACQ,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CAACE,EAAM,EAAEO,MAAiB,EAAEC,OAAgC,KAC1D,IAAIhB,qBAAqB,CAACiB,yBAAyB,CAAC;EAAEC,MAAM,EAAEV,EAAE,CAACA,EAAE,CAACM,eAAe,CAACC,MAAM,EAAEC,OAAO;AAAC,CAAE,CAAC,CAC1G;AAED,OAAO,MAAMG,cAAc,gBAKvBtB,CAAC,CAACQ,IAAI,CACPC,IAAI,IAAKC,IAAI,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EACvB,CAACE,EAAM,EAAEC,IAAY,EAAEO,OAA+B,KACpDnB,CAAC,CAACuB,IAAI,CACJxB,MAAM,CAACyB,OAAO,CAAC,MAAMb,EAAE,CAACA,EAAE,CAACW,cAAc,CAACV,IAAI,EAAEO,OAAO,CAAC,CAAC,EACzDpB,MAAM,CAAC0B,cAAc,CAACvB,eAAe,CAACwB,WAAW,CAACf,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAC1E,CACJ;AAED,MAAMD,IAAI,GAAIiB,CAAU,IAAKA,CAAC,YAAYtB,EAAE;AAE5C,MAAMqB,WAAW,GAAGA,CAACf,EAAM,EAAEiB,YAAoB,KAC/C,IAAIxB,UAAU,CAACyB,aAAa,CAAC;EAAEC,MAAM,EAAE,IAAI;EAAEF,YAAY;EAAEjB,EAAE,EAAEA,EAAE,CAACA,EAAE,CAACoB;AAAY,CAAE,CAAC","ignoreList":[]}
@@ -1,16 +1,27 @@
1
1
  /**
2
2
  * @since 0.0.1
3
3
  */
4
+ import * as Data from "effect/Data";
4
5
  import * as Effect from "effect/Effect";
5
6
  import * as F from "effect/Function";
6
7
  import { MongoClient as MongoClient_ } from "mongodb";
8
+ import * as Db from "./Db.js";
7
9
  import { mongoErrorOrDie } from "./internal/mongo-error.js";
8
10
  import * as MongoError from "./MongoError.js";
9
- export const connect = (url, options) => Effect.promise(() => MongoClient_.connect(url, options)).pipe(Effect.catchAllDefect(mongoErrorOrDie(errorSource([new URL(url).host], "connect"))));
10
- export const close = /*#__PURE__*/F.dual(args => isMongoClient(args[0]), (client, force) => Effect.promise(() => client.close(force)).pipe(Effect.catchAllDefect(mongoErrorOrDie(errorSource(client.options.hosts.map(x => x.host ?? "NO_HOST"), "close")))));
11
+ export class MongoClient extends /*#__PURE__*/Data.TaggedClass("MongoClient") {}
12
+ export const connect = (url, options) => Effect.promise(() => MongoClient_.connect(url, options)).pipe(Effect.map(client => new MongoClient({
13
+ client
14
+ })), Effect.catchAllDefect(mongoErrorOrDie(errorSource([new URL(url).host], "connect"))));
15
+ export const close = /*#__PURE__*/F.dual(args => isMongoClient(args[0]), ({
16
+ client
17
+ }, force) => Effect.promise(() => client.close(force)).pipe(Effect.catchAllDefect(mongoErrorOrDie(errorSource(client.options.hosts.map(x => x.host ?? "NO_HOST"), "close")))));
11
18
  export const connectScoped = (url, options) => Effect.acquireRelease(connect(url, options), client => close(client, options?.forceClose).pipe(Effect.orDie));
12
- export const db = /*#__PURE__*/F.dual(args => isMongoClient(args[0]), (client, dbName, options) => client.db(dbName, options));
13
- const isMongoClient = x => x instanceof MongoClient_;
19
+ export const db = /*#__PURE__*/F.dual(args => isMongoClient(args[0]), ({
20
+ client
21
+ }, dbName, options) => new Db.Db({
22
+ db: client.db(dbName, options)
23
+ }));
24
+ const isMongoClient = x => x instanceof MongoClient;
14
25
  const errorSource = (hosts, functionName) => new MongoError.ClientErrorSource({
15
26
  module: "MongoClient",
16
27
  functionName,
@@ -1 +1 @@
1
- {"version":3,"file":"MongoClient.js","names":["Effect","F","MongoClient","MongoClient_","mongoErrorOrDie","MongoError","connect","url","options","promise","pipe","catchAllDefect","errorSource","URL","host","close","dual","args","isMongoClient","client","force","hosts","map","x","connectScoped","acquireRelease","forceClose","orDie","db","dbName","functionName","ClientErrorSource","module"],"sources":["../../src/MongoClient.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,CAAC,MAAM,iBAAiB;AAGpC,SAASC,WAAW,IAAIC,YAAY,QAAQ,SAAS;AACrD,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAI7C,OAAO,MAAMC,OAAO,GAAGA,CACrBC,GAAW,EACXC,OAA4B,KAE5BR,MAAM,CAACS,OAAO,CAAC,MAAMN,YAAY,CAACG,OAAO,CAACC,GAAG,EAAEC,OAAO,CAAC,CAAC,CAACE,IAAI,CAC3DV,MAAM,CAACW,cAAc,CAACP,eAAe,CAACQ,WAAW,CAAC,CAAC,IAAIC,GAAG,CAACN,GAAG,CAAC,CAACO,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CACpF;AAEH,OAAO,MAAMC,KAAK,gBAGdd,CAAC,CAACe,IAAI,CACPC,IAAI,IAAKC,aAAa,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EAChC,CAACE,MAAmB,EAAEC,KAAe,KACnCpB,MAAM,CAACS,OAAO,CAAC,MAAMU,MAAM,CAACJ,KAAK,CAACK,KAAK,CAAC,CAAC,CAACV,IAAI,CAC5CV,MAAM,CAACW,cAAc,CAACP,eAAe,CAACQ,WAAW,CAACO,MAAM,CAACX,OAAO,CAACa,KAAK,CAACC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACT,IAAI,IAAI,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CACnH,CACJ;AAED,OAAO,MAAMU,aAAa,GAAGA,CAC3BjB,GAAW,EACXC,OAAuD,KAEvDR,MAAM,CAACyB,cAAc,CACnBnB,OAAO,CAACC,GAAG,EAAEC,OAAO,CAAC,EACpBW,MAAM,IAAKJ,KAAK,CAACI,MAAM,EAAEX,OAAO,EAAEkB,UAAU,CAAC,CAAChB,IAAI,CAACV,MAAM,CAAC2B,KAAK,CAAC,CAClE;AAEH,OAAO,MAAMC,EAAE,gBAGX3B,CAAC,CAACe,IAAI,CACPC,IAAI,IAAKC,aAAa,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EAChC,CAACE,MAAmB,EAAEU,MAAe,EAAErB,OAAmB,KAASW,MAAM,CAACS,EAAE,CAACC,MAAM,EAAErB,OAAO,CAAC,CAC9F;AAED,MAAMU,aAAa,GAAIK,CAAU,IAAKA,CAAC,YAAYpB,YAAY;AAE/D,MAAMS,WAAW,GAAGA,CAACS,KAAoB,EAAES,YAAoB,KAC7D,IAAIzB,UAAU,CAAC0B,iBAAiB,CAAC;EAAEC,MAAM,EAAE,aAAa;EAAEF,YAAY;EAAET;AAAK,CAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"MongoClient.js","names":["Data","Effect","F","MongoClient","MongoClient_","Db","mongoErrorOrDie","MongoError","TaggedClass","connect","url","options","promise","pipe","map","client","catchAllDefect","errorSource","URL","host","close","dual","args","isMongoClient","force","hosts","x","connectScoped","acquireRelease","forceClose","orDie","db","dbName","functionName","ClientErrorSource","module"],"sources":["../../src/MongoClient.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,CAAC,MAAM,iBAAiB;AAGpC,SAASC,WAAW,IAAIC,YAAY,QAAQ,SAAS;AACrD,OAAO,KAAKC,EAAE,MAAM,SAAS;AAC7B,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C,OAAM,MAAOJ,WAAY,sBAAQH,IAAI,CAACQ,WAAW,CAAC,aAAa,CAA2B;AAE1F,OAAO,MAAMC,OAAO,GAAGA,CACrBC,GAAW,EACXC,OAA4B,KAE5BV,MAAM,CAACW,OAAO,CAAC,MAAMR,YAAY,CAACK,OAAO,CAACC,GAAG,EAAEC,OAAO,CAAC,CAAC,CAACE,IAAI,CAC3DZ,MAAM,CAACa,GAAG,CAAEC,MAAM,IAAK,IAAIZ,WAAW,CAAC;EAAEY;AAAM,CAAE,CAAC,CAAC,EACnDd,MAAM,CAACe,cAAc,CAACV,eAAe,CAACW,WAAW,CAAC,CAAC,IAAIC,GAAG,CAACR,GAAG,CAAC,CAACS,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CACpF;AAEH,OAAO,MAAMC,KAAK,gBAGdlB,CAAC,CAACmB,IAAI,CACPC,IAAI,IAAKC,aAAa,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EAChC,CAAC;EAAEP;AAAM,CAAe,EAAES,KAAe,KACvCvB,MAAM,CAACW,OAAO,CAAC,MAAMG,MAAM,CAACK,KAAK,CAACI,KAAK,CAAC,CAAC,CAACX,IAAI,CAC5CZ,MAAM,CAACe,cAAc,CAACV,eAAe,CAACW,WAAW,CAACF,MAAM,CAACJ,OAAO,CAACc,KAAK,CAACX,GAAG,CAAEY,CAAC,IAAKA,CAAC,CAACP,IAAI,IAAI,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CACnH,CACJ;AAID,OAAO,MAAMQ,aAAa,GAAGA,CAC3BjB,GAAW,EACXC,OAAkC,KAElCV,MAAM,CAAC2B,cAAc,CACnBnB,OAAO,CAACC,GAAG,EAAEC,OAAO,CAAC,EACpBI,MAAM,IAAKK,KAAK,CAACL,MAAM,EAAEJ,OAAO,EAAEkB,UAAU,CAAC,CAAChB,IAAI,CAACZ,MAAM,CAAC6B,KAAK,CAAC,CAClE;AAEH,OAAO,MAAMC,EAAE,gBAGX7B,CAAC,CAACmB,IAAI,CACPC,IAAI,IAAKC,aAAa,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,EAChC,CAAC;EAAEP;AAAM,CAAe,EAAEiB,MAAe,EAAErB,OAAmB,KAC5D,IAAIN,EAAE,CAACA,EAAE,CAAC;EAAE0B,EAAE,EAAEhB,MAAM,CAACgB,EAAE,CAACC,MAAM,EAAErB,OAAO;AAAC,CAAE,CAAC,CAChD;AAED,MAAMY,aAAa,GAAIG,CAAU,IAAKA,CAAC,YAAYvB,WAAW;AAE9D,MAAMc,WAAW,GAAGA,CAACQ,KAAoB,EAAEQ,YAAoB,KAC7D,IAAI1B,UAAU,CAAC2B,iBAAiB,CAAC;EAAEC,MAAM,EAAE,aAAa;EAAEF,YAAY;EAAER;AAAK,CAAE,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- let moduleVersion = "0.1.4";
1
+ let moduleVersion = "0.2.0";
2
2
  export const getCurrentVersion = () => moduleVersion;
3
3
  export const setCurrentVersion = version => {
4
4
  moduleVersion = version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "effect-mongodb",
3
- "version": "0.1.4",
3
+ "version": "0.2.0",
4
4
  "description": "A MongoDB toolkit for Effect",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/Db.ts CHANGED
@@ -1,17 +1,19 @@
1
1
  /**
2
2
  * @since 0.0.1
3
3
  */
4
+ import * as Data from "effect/Data"
4
5
  import * as Effect from "effect/Effect"
5
6
  import * as F from "effect/Function"
6
7
  import type * as Schema from "effect/Schema"
7
- import type { Document, DropCollectionOptions, ListCollectionsOptions } from "mongodb"
8
- import { Db } from "mongodb"
8
+ import type { Db as Db_, Document, DropCollectionOptions, ListCollectionsOptions } from "mongodb"
9
9
  import type * as Collection from "./Collection.js"
10
10
  import * as DocumentCollection from "./DocumentCollection.js"
11
11
  import { mongoErrorOrDie } from "./internal/mongo-error.js"
12
12
  import * as ListCollectionsCursor from "./ListCollectionsCursor.js"
13
13
  import * as MongoError from "./MongoError.js"
14
14
 
15
+ export class Db extends Data.TaggedClass("Db")<{ db: Db_ }> {}
16
+
15
17
  export const documentCollection: {
16
18
  (name: string): (db: Db) => DocumentCollection.DocumentCollection
17
19
  (db: Db, name: string): DocumentCollection.DocumentCollection
@@ -19,7 +21,7 @@ export const documentCollection: {
19
21
  (args) => isDb(args[0]),
20
22
  (db: Db, name: string): DocumentCollection.DocumentCollection =>
21
23
  new DocumentCollection.DocumentCollectionImpl({
22
- collection: db.collection(name)
24
+ collection: db.db.collection(name)
23
25
  })
24
26
  )
25
27
 
@@ -67,7 +69,7 @@ export const listCollections: {
67
69
  } = F.dual(
68
70
  (args) => isDb(args[0]),
69
71
  (db: Db, filter?: Document, options?: ListCollectionsOptions): ListCollectionsCursor.ListCollectionsCursor =>
70
- new ListCollectionsCursor.ListCollectionsCursorImpl({ cursor: db.listCollections(filter, options) })
72
+ new ListCollectionsCursor.ListCollectionsCursorImpl({ cursor: db.db.listCollections(filter, options) })
71
73
  )
72
74
 
73
75
  export const dropCollection: {
@@ -79,7 +81,7 @@ export const dropCollection: {
79
81
  (args) => isDb(args[0]),
80
82
  (db: Db, name: string, options?: DropCollectionOptions): Effect.Effect<boolean, MongoError.MongoError> =>
81
83
  F.pipe(
82
- Effect.promise(() => db.dropCollection(name, options)),
84
+ Effect.promise(() => db.db.dropCollection(name, options)),
83
85
  Effect.catchAllDefect(mongoErrorOrDie(errorSource(db, "dropCollection")))
84
86
  )
85
87
  )
@@ -87,4 +89,4 @@ export const dropCollection: {
87
89
  const isDb = (x: unknown) => x instanceof Db
88
90
 
89
91
  const errorSource = (db: Db, functionName: string) =>
90
- new MongoError.DbErrorSource({ module: "Db", functionName, db: db.databaseName })
92
+ new MongoError.DbErrorSource({ module: "Db", functionName, db: db.db.databaseName })
@@ -1,21 +1,24 @@
1
1
  /**
2
2
  * @since 0.0.1
3
3
  */
4
+ import * as Data from "effect/Data"
4
5
  import * as Effect from "effect/Effect"
5
6
  import * as F from "effect/Function"
6
7
  import type * as Scope from "effect/Scope"
7
- import type { Db, DbOptions, MongoClientOptions } from "mongodb"
8
+ import type { DbOptions, MongoClientOptions } from "mongodb"
8
9
  import { MongoClient as MongoClient_ } from "mongodb"
10
+ import * as Db from "./Db.js"
9
11
  import { mongoErrorOrDie } from "./internal/mongo-error.js"
10
12
  import * as MongoError from "./MongoError.js"
11
13
 
12
- export type MongoClient = MongoClient_
14
+ export class MongoClient extends Data.TaggedClass("MongoClient")<{ client: MongoClient_ }> {}
13
15
 
14
16
  export const connect = (
15
17
  url: string,
16
18
  options?: MongoClientOptions
17
19
  ): Effect.Effect<MongoClient, MongoError.MongoError> =>
18
20
  Effect.promise(() => MongoClient_.connect(url, options)).pipe(
21
+ Effect.map((client) => new MongoClient({ client })),
19
22
  Effect.catchAllDefect(mongoErrorOrDie(errorSource([new URL(url).host], "connect")))
20
23
  )
21
24
 
@@ -24,15 +27,17 @@ export const close: {
24
27
  (client: MongoClient, force?: boolean): Effect.Effect<void, MongoError.MongoError>
25
28
  } = F.dual(
26
29
  (args) => isMongoClient(args[0]),
27
- (client: MongoClient, force?: boolean): Effect.Effect<void, MongoError.MongoError> =>
30
+ ({ client }: MongoClient, force?: boolean): Effect.Effect<void, MongoError.MongoError> =>
28
31
  Effect.promise(() => client.close(force)).pipe(
29
32
  Effect.catchAllDefect(mongoErrorOrDie(errorSource(client.options.hosts.map((x) => x.host ?? "NO_HOST"), "close")))
30
33
  )
31
34
  )
32
35
 
36
+ export type MongoClientScopedOptions = MongoClientOptions & { forceClose?: boolean }
37
+
33
38
  export const connectScoped = (
34
39
  url: string,
35
- options?: MongoClientOptions & { forceClose?: boolean }
40
+ options?: MongoClientScopedOptions
36
41
  ): Effect.Effect<MongoClient, MongoError.MongoError, Scope.Scope> =>
37
42
  Effect.acquireRelease(
38
43
  connect(url, options),
@@ -40,14 +45,15 @@ export const connectScoped = (
40
45
  )
41
46
 
42
47
  export const db: {
43
- (dbName?: string, options?: DbOptions): (client: MongoClient) => Db
44
- (client: MongoClient, dbName?: string, options?: DbOptions): Db
48
+ (dbName?: string, options?: DbOptions): (client: MongoClient) => Db.Db
49
+ (client: MongoClient, dbName?: string, options?: DbOptions): Db.Db
45
50
  } = F.dual(
46
51
  (args) => isMongoClient(args[0]),
47
- (client: MongoClient, dbName?: string, options?: DbOptions): Db => client.db(dbName, options)
52
+ ({ client }: MongoClient, dbName?: string, options?: DbOptions): Db.Db =>
53
+ new Db.Db({ db: client.db(dbName, options) })
48
54
  )
49
55
 
50
- const isMongoClient = (x: unknown) => x instanceof MongoClient_
56
+ const isMongoClient = (x: unknown) => x instanceof MongoClient
51
57
 
52
58
  const errorSource = (hosts: Array<string>, functionName: string) =>
53
59
  new MongoError.ClientErrorSource({ module: "MongoClient", functionName, hosts })
@@ -1,4 +1,4 @@
1
- let moduleVersion = "0.1.4"
1
+ let moduleVersion = "0.2.0"
2
2
 
3
3
  export const getCurrentVersion = () => moduleVersion
4
4