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 +9 -7
- package/dist/cjs/Db.js.map +1 -1
- package/dist/cjs/MongoClient.js +17 -5
- package/dist/cjs/MongoClient.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Db.d.ts +9 -5
- package/dist/dts/Db.d.ts.map +1 -1
- package/dist/dts/MongoClient.d.ts +15 -9
- package/dist/dts/MongoClient.d.ts.map +1 -1
- package/dist/esm/Db.js +6 -5
- package/dist/esm/Db.js.map +1 -1
- package/dist/esm/MongoClient.js +15 -4
- package/dist/esm/MongoClient.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/Db.ts +8 -6
- package/src/MongoClient.ts +14 -8
- package/src/internal/version.ts +1 -1
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
|
|
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
|
package/dist/cjs/Db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Db.js","names":["
|
|
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":"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","ignoreList":[]}
|
package/dist/cjs/MongoClient.js
CHANGED
|
@@ -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
|
-
|
|
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]), (
|
|
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]), (
|
|
24
|
-
|
|
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":["
|
|
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.
|
|
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
|
package/dist/dts/Db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"
|
|
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 {
|
|
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
|
-
|
|
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
|
|
19
|
+
export type MongoClientScopedOptions = MongoClientOptions & {
|
|
16
20
|
forceClose?: boolean;
|
|
17
|
-
}
|
|
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":"
|
|
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
|
package/dist/esm/Db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Db.js","names":["
|
|
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":[]}
|
package/dist/esm/MongoClient.js
CHANGED
|
@@ -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
|
|
10
|
-
export const
|
|
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]), (
|
|
13
|
-
|
|
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","
|
|
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":[]}
|
package/package.json
CHANGED
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 })
|
package/src/MongoClient.ts
CHANGED
|
@@ -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 {
|
|
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
|
|
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?:
|
|
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 =>
|
|
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
|
|
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 })
|
package/src/internal/version.ts
CHANGED