@thisisagile/easy-mongo 11.0.0 → 11.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/MongoProvider.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Condition, Database, Field, Id, Json, JsonValue, LogicalCondition, PageList, PageOptions } from '@thisisagile/easy';
|
|
2
|
-
import { Collection as MongoCollection, Filter as MongoFilter, FindOptions as MongoFindOptions, MongoClient } from 'mongodb';
|
|
2
|
+
import { AggregationCursor, Collection as MongoCollection, Document, Filter as MongoFilter, FindCursor, FindOptions as MongoFindOptions, MongoClient } from 'mongodb';
|
|
3
3
|
import { Collection } from './Collection';
|
|
4
4
|
export declare type Projection = Record<string, 0 | 1>;
|
|
5
5
|
export declare type FindOptions = PageOptions & {
|
|
@@ -17,6 +17,11 @@ export declare class MongoProvider {
|
|
|
17
17
|
protected toFindOptions(options?: FindOptions): MongoFindOptions & {
|
|
18
18
|
total: boolean;
|
|
19
19
|
};
|
|
20
|
+
protected toArray(cursor: FindCursor<Document> | AggregationCursor<Document>, options?: {
|
|
21
|
+
take?: number;
|
|
22
|
+
skip?: number;
|
|
23
|
+
total?: number;
|
|
24
|
+
}): Promise<PageList<Json>>;
|
|
20
25
|
find(query: Condition | LogicalCondition | Filter<any>, options?: FindOptions): Promise<PageList<Json>>;
|
|
21
26
|
all(options?: FindOptions): Promise<PageList<Json>>;
|
|
22
27
|
byId(id: Id, options?: FindOptions): Promise<Json>;
|
package/dist/MongoProvider.js
CHANGED
|
@@ -41,11 +41,13 @@ class MongoProvider {
|
|
|
41
41
|
projection: { _id: 0, ...options?.projection },
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
+
toArray(cursor, options) {
|
|
45
|
+
return cursor.toArray().then(r => (0, easy_1.toPageList)(r, options));
|
|
46
|
+
}
|
|
44
47
|
find(query, options) {
|
|
45
48
|
return (0, easy_1.tuple3)(this.collection(), this.toMongoJson(query), this.toFindOptions(options))
|
|
46
49
|
.then(([c, q, o]) => (0, easy_1.tuple2)(c.find(q, o), (0, easy_1.ifTrue)(o.total, () => c.countDocuments(q))))
|
|
47
|
-
.then(([res, total]) =>
|
|
48
|
-
.then(([res, total]) => (0, easy_1.toPageList)(res, options && { total }));
|
|
50
|
+
.then(([res, total]) => this.toArray(res, options && { total }));
|
|
49
51
|
}
|
|
50
52
|
all(options) {
|
|
51
53
|
return this.find({}, options);
|
|
@@ -59,8 +61,7 @@ class MongoProvider {
|
|
|
59
61
|
group(qs) {
|
|
60
62
|
return this.collection()
|
|
61
63
|
.then(c => c.aggregate(qs.map(q => this.toMongoJson(q))))
|
|
62
|
-
.then(res =>
|
|
63
|
-
.then(res => (0, easy_1.toPageList)(res));
|
|
64
|
+
.then(res => this.toArray(res));
|
|
64
65
|
}
|
|
65
66
|
add(item) {
|
|
66
67
|
return this.collection()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MongoProvider.js","sourceRoot":"","sources":["../src/MongoProvider.ts"],"names":[],"mappings":";;;AAAA,4CAqB2B;AAC3B,
|
|
1
|
+
{"version":3,"file":"MongoProvider.js","sourceRoot":"","sources":["../src/MongoProvider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thisisagile/easy-mongo",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.2.0",
|
|
4
4
|
"description": "Add support for MongoDB",
|
|
5
5
|
"author": "Sander Hoogendoorn",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@thisisagile/easy-test": "11.
|
|
34
|
+
"@thisisagile/easy-test": "11.2.0"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@thisisagile/easy": "11.
|
|
37
|
+
"@thisisagile/easy": "11.2.0",
|
|
38
38
|
"mongodb": "^4.6.0"
|
|
39
39
|
}
|
|
40
40
|
}
|
package/src/MongoProvider.ts
CHANGED
|
@@ -20,7 +20,15 @@ import {
|
|
|
20
20
|
tuple3,
|
|
21
21
|
when,
|
|
22
22
|
} from '@thisisagile/easy';
|
|
23
|
-
import {
|
|
23
|
+
import {
|
|
24
|
+
AggregationCursor,
|
|
25
|
+
Collection as MongoCollection,
|
|
26
|
+
Document,
|
|
27
|
+
Filter as MongoFilter,
|
|
28
|
+
FindCursor,
|
|
29
|
+
FindOptions as MongoFindOptions,
|
|
30
|
+
MongoClient,
|
|
31
|
+
} from 'mongodb';
|
|
24
32
|
import { Collection } from './Collection';
|
|
25
33
|
import { toMongoType } from './Utils';
|
|
26
34
|
|
|
@@ -73,6 +81,13 @@ export class MongoProvider {
|
|
|
73
81
|
};
|
|
74
82
|
}
|
|
75
83
|
|
|
84
|
+
protected toArray(
|
|
85
|
+
cursor: FindCursor<Document> | AggregationCursor<Document>,
|
|
86
|
+
options?: { take?: number; skip?: number; total?: number }
|
|
87
|
+
): Promise<PageList<Json>> {
|
|
88
|
+
return cursor.toArray().then(r => toPageList<Json>(r, options));
|
|
89
|
+
}
|
|
90
|
+
|
|
76
91
|
find(query: Condition | LogicalCondition | Filter<any>, options?: FindOptions): Promise<PageList<Json>> {
|
|
77
92
|
return tuple3(this.collection(), this.toMongoJson(query), this.toFindOptions(options))
|
|
78
93
|
.then(([c, q, o]) =>
|
|
@@ -81,8 +96,7 @@ export class MongoProvider {
|
|
|
81
96
|
ifTrue(o.total, () => c.countDocuments(q))
|
|
82
97
|
)
|
|
83
98
|
)
|
|
84
|
-
.then(([res, total]) =>
|
|
85
|
-
.then(([res, total]) => toPageList(res as Json[], options && { total }));
|
|
99
|
+
.then(([res, total]) => this.toArray(res, options && { total }));
|
|
86
100
|
}
|
|
87
101
|
|
|
88
102
|
all(options?: FindOptions): Promise<PageList<Json>> {
|
|
@@ -100,8 +114,7 @@ export class MongoProvider {
|
|
|
100
114
|
group(qs: Filter<any>[]): Promise<PageList<Json>> {
|
|
101
115
|
return this.collection()
|
|
102
116
|
.then(c => c.aggregate(qs.map(q => this.toMongoJson(q))))
|
|
103
|
-
.then(res =>
|
|
104
|
-
.then(res => toPageList(res));
|
|
117
|
+
.then(res => this.toArray(res));
|
|
105
118
|
}
|
|
106
119
|
|
|
107
120
|
add(item: Json): Promise<Json> {
|