@webda/mongo 4.0.0-beta.1 → 4.0.0-beta.3
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/README.md +118 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/mongodb.service.d.ts +175 -0
- package/lib/mongodb.service.d.ts.map +1 -0
- package/lib/mongodb.service.js +473 -0
- package/lib/mongodb.service.js.map +1 -0
- package/package.json +30 -31
- package/test/config.json +2 -39
- package/webda.module.json +353 -453
- package/lib/mongodb.d.ts +0 -132
- package/lib/mongodb.js +0 -359
- package/lib/mongodb.js.map +0 -1
package/lib/mongodb.d.ts
DELETED
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { CoreModel, Store, StoreFindResult, StoreParameters } from "@webda/core";
|
|
2
|
-
import * as WebdaQL from "@webda/ql";
|
|
3
|
-
import { Collection, Db, DbOptions, Document, MongoClient } from "mongodb";
|
|
4
|
-
export declare class MongoParameters extends StoreParameters {
|
|
5
|
-
constructor(params: any, service: Store);
|
|
6
|
-
/**
|
|
7
|
-
* Contains the URL to Mongo Server
|
|
8
|
-
*
|
|
9
|
-
* Will try to use WEBDA_MONDO_URL environment variable if not defined
|
|
10
|
-
*/
|
|
11
|
-
mongoUrl?: string;
|
|
12
|
-
/**
|
|
13
|
-
* Additional options for Mongo connetion
|
|
14
|
-
*
|
|
15
|
-
* Should be typed with MongoClientOptions but not available due to bug in ts-json-schema-generator
|
|
16
|
-
* https://docs.mongodb.com/manual/reference/connection-string
|
|
17
|
-
*/
|
|
18
|
-
options?: any;
|
|
19
|
-
/**
|
|
20
|
-
* Which collection to use
|
|
21
|
-
*/
|
|
22
|
-
collection: string;
|
|
23
|
-
/**
|
|
24
|
-
*
|
|
25
|
-
*/
|
|
26
|
-
database?: string;
|
|
27
|
-
/**
|
|
28
|
-
* Mongo Database Options
|
|
29
|
-
*
|
|
30
|
-
* @see https://www.npmjs.com/package/mongodb
|
|
31
|
-
*/
|
|
32
|
-
databaseOptions?: DbOptions;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Store Objects in MongoDB
|
|
36
|
-
*
|
|
37
|
-
* Parameters:
|
|
38
|
-
* mongo: 'mongodb://127.0.0.1:27017' // If not found try to read WEBDA_MONGO_URL env variable
|
|
39
|
-
*
|
|
40
|
-
* @WebdaModda
|
|
41
|
-
*/
|
|
42
|
-
export default class MongoStore<T extends CoreModel, K extends MongoParameters> extends Store<T, K> {
|
|
43
|
-
/**
|
|
44
|
-
* Connect promise
|
|
45
|
-
*/
|
|
46
|
-
_connectPromise: Promise<any>;
|
|
47
|
-
/**
|
|
48
|
-
* Client
|
|
49
|
-
*/
|
|
50
|
-
_client: MongoClient;
|
|
51
|
-
_db: Db;
|
|
52
|
-
_collection: Collection<Document>;
|
|
53
|
-
/** @ignore */
|
|
54
|
-
constructor(webda: any, name: any, options: any);
|
|
55
|
-
/**
|
|
56
|
-
* @override
|
|
57
|
-
*/
|
|
58
|
-
loadParameters(params: any): MongoParameters;
|
|
59
|
-
/**
|
|
60
|
-
* Connect to MongoDB if not already connected
|
|
61
|
-
* @returns
|
|
62
|
-
*/
|
|
63
|
-
_connect(): Promise<any>;
|
|
64
|
-
/**
|
|
65
|
-
* @override
|
|
66
|
-
*/
|
|
67
|
-
_exists(uid: any): Promise<boolean>;
|
|
68
|
-
/**
|
|
69
|
-
* Return a filter for Mongo command
|
|
70
|
-
* @param uuid
|
|
71
|
-
* @param itemWriteCondition
|
|
72
|
-
* @param itemWriteConditionField
|
|
73
|
-
* @returns
|
|
74
|
-
*/
|
|
75
|
-
protected getFilter(uuid: string, itemWriteCondition?: any, itemWriteConditionField?: string): any;
|
|
76
|
-
/**
|
|
77
|
-
* @override
|
|
78
|
-
*/
|
|
79
|
-
_removeAttribute(uuid: string, attribute: string, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<void>;
|
|
80
|
-
/**
|
|
81
|
-
* @override
|
|
82
|
-
*/
|
|
83
|
-
_deleteItemFromCollection(uid: any, prop: any, index: any, itemWriteCondition: any, itemWriteConditionField: any, updateDate: Date): Promise<void>;
|
|
84
|
-
/**
|
|
85
|
-
* @override
|
|
86
|
-
*/
|
|
87
|
-
_incrementAttributes(uid: string, parameters: {
|
|
88
|
-
property: string;
|
|
89
|
-
value: number;
|
|
90
|
-
}[], updateDate: Date): Promise<void>;
|
|
91
|
-
/**
|
|
92
|
-
* @override
|
|
93
|
-
*/
|
|
94
|
-
_upsertItemToCollection(uid: any, prop: any, item: any, index: any, itemWriteCondition: any, itemWriteConditionField: any, updateDate: Date): Promise<void>;
|
|
95
|
-
/**
|
|
96
|
-
* @override
|
|
97
|
-
*/
|
|
98
|
-
_save(object: any): Promise<any>;
|
|
99
|
-
/**
|
|
100
|
-
* Get a mongodb query object from WebdaQL
|
|
101
|
-
*/
|
|
102
|
-
mapExpression(expression: WebdaQL.Expression): any;
|
|
103
|
-
/**
|
|
104
|
-
* @override
|
|
105
|
-
*/
|
|
106
|
-
find(query: WebdaQL.Query): Promise<StoreFindResult<T>>;
|
|
107
|
-
/**
|
|
108
|
-
* @override
|
|
109
|
-
*/
|
|
110
|
-
_delete(uid: string, writeCondition?: any, itemWriteConditionField?: string): Promise<void>;
|
|
111
|
-
/**
|
|
112
|
-
* @override
|
|
113
|
-
*/
|
|
114
|
-
_patch(object: any, uid: string, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<void>;
|
|
115
|
-
/**
|
|
116
|
-
* @override
|
|
117
|
-
*/
|
|
118
|
-
_update(object: any, uid: string, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<any>;
|
|
119
|
-
/**
|
|
120
|
-
* @override
|
|
121
|
-
*/
|
|
122
|
-
getAll(uids: any): Promise<T[]>;
|
|
123
|
-
/**
|
|
124
|
-
* @override
|
|
125
|
-
*/
|
|
126
|
-
_get(uid: string, raiseIfNotFound?: boolean): Promise<T>;
|
|
127
|
-
/**
|
|
128
|
-
* @override
|
|
129
|
-
*/
|
|
130
|
-
__clean(): Promise<void>;
|
|
131
|
-
}
|
|
132
|
-
export { MongoStore };
|
package/lib/mongodb.js
DELETED
|
@@ -1,359 +0,0 @@
|
|
|
1
|
-
import { CoreModel, Store, StoreNotFoundError, StoreParameters, UpdateConditionFailError } from "@webda/core";
|
|
2
|
-
import * as WebdaQL from "@webda/ql";
|
|
3
|
-
import { MongoClient } from "mongodb";
|
|
4
|
-
export class MongoParameters extends StoreParameters {
|
|
5
|
-
constructor(params, service) {
|
|
6
|
-
super(params, service);
|
|
7
|
-
this.mongoUrl ?? (this.mongoUrl = process.env["WEBDA_MONGO_URL"]);
|
|
8
|
-
if (this.mongoUrl === undefined) {
|
|
9
|
-
throw new Error("An URL is required for MongoDB service");
|
|
10
|
-
}
|
|
11
|
-
this.options ?? (this.options = {});
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Store Objects in MongoDB
|
|
16
|
-
*
|
|
17
|
-
* Parameters:
|
|
18
|
-
* mongo: 'mongodb://127.0.0.1:27017' // If not found try to read WEBDA_MONGO_URL env variable
|
|
19
|
-
*
|
|
20
|
-
* @WebdaModda
|
|
21
|
-
*/
|
|
22
|
-
export default class MongoStore extends Store {
|
|
23
|
-
/** @ignore */
|
|
24
|
-
constructor(webda, name, options) {
|
|
25
|
-
super(webda, name, options);
|
|
26
|
-
/**
|
|
27
|
-
* Connect promise
|
|
28
|
-
*/
|
|
29
|
-
this._connectPromise = undefined;
|
|
30
|
-
this._connectPromise = undefined;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* @override
|
|
34
|
-
*/
|
|
35
|
-
loadParameters(params) {
|
|
36
|
-
return new MongoParameters(params, this);
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Connect to MongoDB if not already connected
|
|
40
|
-
* @returns
|
|
41
|
-
*/
|
|
42
|
-
async _connect() {
|
|
43
|
-
if (this._connectPromise === undefined) {
|
|
44
|
-
this._connectPromise = (async () => {
|
|
45
|
-
this._client = await new MongoClient(this.parameters.mongoUrl, this.parameters.options).connect();
|
|
46
|
-
this._db = this._client.db(this.parameters.database, this.parameters.databaseOptions);
|
|
47
|
-
this._collection = this._db.collection(this.parameters.collection);
|
|
48
|
-
})();
|
|
49
|
-
}
|
|
50
|
-
return this._connectPromise;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* @override
|
|
54
|
-
*/
|
|
55
|
-
async _exists(uid) {
|
|
56
|
-
// Should use find + limit 1
|
|
57
|
-
return (await this._get(uid)) !== undefined;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Return a filter for Mongo command
|
|
61
|
-
* @param uuid
|
|
62
|
-
* @param itemWriteCondition
|
|
63
|
-
* @param itemWriteConditionField
|
|
64
|
-
* @returns
|
|
65
|
-
*/
|
|
66
|
-
getFilter(uuid, itemWriteCondition, itemWriteConditionField) {
|
|
67
|
-
let filter = {
|
|
68
|
-
_id: uuid
|
|
69
|
-
};
|
|
70
|
-
if (itemWriteCondition && itemWriteConditionField) {
|
|
71
|
-
filter[itemWriteConditionField] = itemWriteCondition;
|
|
72
|
-
}
|
|
73
|
-
return filter;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* @override
|
|
77
|
-
*/
|
|
78
|
-
async _removeAttribute(uuid, attribute, itemWriteCondition, itemWriteConditionField) {
|
|
79
|
-
await this._connect();
|
|
80
|
-
let filter = this.getFilter(uuid, itemWriteCondition, itemWriteConditionField);
|
|
81
|
-
let params = {
|
|
82
|
-
$unset: {},
|
|
83
|
-
$set: {}
|
|
84
|
-
};
|
|
85
|
-
params["$set"]["_lastUpdate"] = new Date();
|
|
86
|
-
params["$unset"][attribute] = 1;
|
|
87
|
-
let res = await this._collection.updateOne(filter, params);
|
|
88
|
-
if (res.matchedCount === 0) {
|
|
89
|
-
if (itemWriteCondition) {
|
|
90
|
-
throw new UpdateConditionFailError(uuid, itemWriteConditionField, itemWriteCondition);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
throw new StoreNotFoundError(uuid, this.getName());
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* @override
|
|
99
|
-
*/
|
|
100
|
-
async _deleteItemFromCollection(uid, prop, index, itemWriteCondition, itemWriteConditionField, updateDate) {
|
|
101
|
-
await this._connect();
|
|
102
|
-
let filter = {
|
|
103
|
-
_id: uid
|
|
104
|
-
};
|
|
105
|
-
if (itemWriteCondition) {
|
|
106
|
-
filter[prop + "." + index + "." + itemWriteConditionField] = itemWriteCondition;
|
|
107
|
-
}
|
|
108
|
-
let params = {
|
|
109
|
-
$unset: {},
|
|
110
|
-
$set: {}
|
|
111
|
-
};
|
|
112
|
-
params["$set"]["_lastUpdate"] = updateDate;
|
|
113
|
-
params["$unset"][prop + "." + index] = 1;
|
|
114
|
-
let res = await this._collection.updateOne(filter, params);
|
|
115
|
-
if (res.matchedCount === 0) {
|
|
116
|
-
throw new UpdateConditionFailError(uid, itemWriteConditionField, itemWriteCondition);
|
|
117
|
-
}
|
|
118
|
-
let remove = {
|
|
119
|
-
$pull: {},
|
|
120
|
-
$set: {}
|
|
121
|
-
};
|
|
122
|
-
remove["$set"]["_lastUpdate"] = updateDate;
|
|
123
|
-
remove["$pull"][prop] = null;
|
|
124
|
-
await this._collection.updateOne({
|
|
125
|
-
_id: uid
|
|
126
|
-
}, remove);
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* @override
|
|
130
|
-
*/
|
|
131
|
-
async _incrementAttributes(uid, parameters, updateDate) {
|
|
132
|
-
await this._connect();
|
|
133
|
-
let params = {
|
|
134
|
-
$inc: {},
|
|
135
|
-
$set: {}
|
|
136
|
-
};
|
|
137
|
-
params["$set"]["_lastUpdate"] = updateDate;
|
|
138
|
-
parameters.forEach(p => {
|
|
139
|
-
params["$inc"][p.property] = p.value;
|
|
140
|
-
});
|
|
141
|
-
let res = await this._collection.updateOne({
|
|
142
|
-
_id: {
|
|
143
|
-
$eq: uid
|
|
144
|
-
}
|
|
145
|
-
}, params);
|
|
146
|
-
if (res.matchedCount === 0) {
|
|
147
|
-
throw new StoreNotFoundError(uid, this.getName());
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* @override
|
|
152
|
-
*/
|
|
153
|
-
async _upsertItemToCollection(uid, prop, item, index, itemWriteCondition, itemWriteConditionField, updateDate) {
|
|
154
|
-
await this._connect();
|
|
155
|
-
let filter = {
|
|
156
|
-
_id: uid
|
|
157
|
-
};
|
|
158
|
-
let params = {};
|
|
159
|
-
if (index === undefined) {
|
|
160
|
-
params = {
|
|
161
|
-
$push: {},
|
|
162
|
-
$set: {}
|
|
163
|
-
};
|
|
164
|
-
params["$set"]["_lastUpdate"] = updateDate;
|
|
165
|
-
params["$push"][prop] = item;
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
params = {
|
|
169
|
-
$set: {}
|
|
170
|
-
};
|
|
171
|
-
params["$set"]["_lastUpdate"] = updateDate;
|
|
172
|
-
params["$set"][prop + "." + index] = item;
|
|
173
|
-
filter[prop + "." + index + "." + itemWriteConditionField] = itemWriteCondition;
|
|
174
|
-
}
|
|
175
|
-
let res = await this._collection.updateOne(filter, params);
|
|
176
|
-
if (res.matchedCount === 0) {
|
|
177
|
-
if (itemWriteCondition) {
|
|
178
|
-
throw new UpdateConditionFailError(uid, itemWriteConditionField, itemWriteCondition);
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
throw new StoreNotFoundError(uid, this.getName());
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* @override
|
|
187
|
-
*/
|
|
188
|
-
async _save(object) {
|
|
189
|
-
if (object instanceof CoreModel) {
|
|
190
|
-
object = object.toStoredJSON();
|
|
191
|
-
}
|
|
192
|
-
object._id = object.uuid;
|
|
193
|
-
await this._connect();
|
|
194
|
-
await this._collection.insertOne(object);
|
|
195
|
-
return object;
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Get a mongodb query object from WebdaQL
|
|
199
|
-
*/
|
|
200
|
-
mapExpression(expression) {
|
|
201
|
-
if (expression instanceof WebdaQL.AndExpression) {
|
|
202
|
-
let query = {};
|
|
203
|
-
expression.children.forEach(e => {
|
|
204
|
-
query = { ...query, ...this.mapExpression(e) };
|
|
205
|
-
});
|
|
206
|
-
return query;
|
|
207
|
-
}
|
|
208
|
-
else if (expression instanceof WebdaQL.OrExpression) {
|
|
209
|
-
return {
|
|
210
|
-
$or: expression.children.map(e => this.mapExpression(e))
|
|
211
|
-
};
|
|
212
|
-
}
|
|
213
|
-
else if (expression instanceof WebdaQL.ComparisonExpression) {
|
|
214
|
-
if (expression.operator === "=" || expression.operator === "CONTAINS") {
|
|
215
|
-
// MongoDB use same syntax for exact match or contains for an array
|
|
216
|
-
return {
|
|
217
|
-
[expression.attribute.join(".")]: expression.value
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
else if (expression.operator === "<") {
|
|
221
|
-
return {
|
|
222
|
-
[expression.attribute.join(".")]: { $lt: expression.value }
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
else if (expression.operator === ">") {
|
|
226
|
-
return {
|
|
227
|
-
[expression.attribute.join(".")]: { $gt: expression.value }
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
else if (expression.operator === "<=") {
|
|
231
|
-
return {
|
|
232
|
-
[expression.attribute.join(".")]: { $lte: expression.value }
|
|
233
|
-
};
|
|
234
|
-
}
|
|
235
|
-
else if (expression.operator === ">=") {
|
|
236
|
-
return {
|
|
237
|
-
[expression.attribute.join(".")]: { $gte: expression.value }
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
else if (expression.operator === "!=") {
|
|
241
|
-
return {
|
|
242
|
-
[expression.attribute.join(".")]: { $ne: expression.value }
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
else if (expression.operator === "IN") {
|
|
246
|
-
return {
|
|
247
|
-
[expression.attribute.join(".")]: { $in: expression.value }
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
else if (expression.operator === "LIKE") {
|
|
251
|
-
return {
|
|
252
|
-
[expression.attribute.join(".")]: WebdaQL.ComparisonExpression.likeToRegex(expression.value)
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* @override
|
|
259
|
-
*/
|
|
260
|
-
async find(query) {
|
|
261
|
-
await this._connect();
|
|
262
|
-
let offset = parseInt(query.continuationToken);
|
|
263
|
-
if (isNaN(offset)) {
|
|
264
|
-
offset = 0;
|
|
265
|
-
}
|
|
266
|
-
let sortObject = {};
|
|
267
|
-
if (query.orderBy) {
|
|
268
|
-
query.orderBy.forEach(e => {
|
|
269
|
-
sortObject[e.field] = e.direction === "ASC" ? 1 : -1;
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
// We should be able to expression everything as an expression
|
|
273
|
-
const results = (await this._collection
|
|
274
|
-
.find(this.mapExpression(query.filter))
|
|
275
|
-
.sort(sortObject)
|
|
276
|
-
.skip(offset)
|
|
277
|
-
.limit(query.limit || 1000)
|
|
278
|
-
.toArray()).map(doc => this.initModel(doc));
|
|
279
|
-
return {
|
|
280
|
-
results,
|
|
281
|
-
continuationToken: results.length >= query.limit ? (offset + query.limit).toString() : undefined,
|
|
282
|
-
filter: true
|
|
283
|
-
};
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* @override
|
|
287
|
-
*/
|
|
288
|
-
async _delete(uid, writeCondition, itemWriteConditionField) {
|
|
289
|
-
await this._connect();
|
|
290
|
-
await this._collection.deleteOne(this.getFilter(uid, writeCondition, itemWriteConditionField));
|
|
291
|
-
}
|
|
292
|
-
/**
|
|
293
|
-
* @override
|
|
294
|
-
*/
|
|
295
|
-
async _patch(object, uid, itemWriteCondition, itemWriteConditionField) {
|
|
296
|
-
await this._connect();
|
|
297
|
-
let res = await this._collection.updateOne(this.getFilter(uid, itemWriteCondition, itemWriteConditionField), {
|
|
298
|
-
$set: object
|
|
299
|
-
});
|
|
300
|
-
if (res.matchedCount === 0) {
|
|
301
|
-
throw new UpdateConditionFailError(uid, itemWriteConditionField, itemWriteCondition);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* @override
|
|
306
|
-
*/
|
|
307
|
-
async _update(object, uid, itemWriteCondition, itemWriteConditionField) {
|
|
308
|
-
if (object instanceof CoreModel) {
|
|
309
|
-
object = object.toStoredJSON();
|
|
310
|
-
}
|
|
311
|
-
await this._connect();
|
|
312
|
-
let filter = this.getFilter(uid, itemWriteCondition, itemWriteConditionField);
|
|
313
|
-
let res = await this._collection.updateOne(filter, {
|
|
314
|
-
$set: object
|
|
315
|
-
});
|
|
316
|
-
if (res.matchedCount === 0) {
|
|
317
|
-
throw new UpdateConditionFailError(uid, itemWriteConditionField, itemWriteCondition);
|
|
318
|
-
}
|
|
319
|
-
return object;
|
|
320
|
-
}
|
|
321
|
-
/**
|
|
322
|
-
* @override
|
|
323
|
-
*/
|
|
324
|
-
async getAll(uids) {
|
|
325
|
-
await this._connect();
|
|
326
|
-
let params = {};
|
|
327
|
-
if (uids) {
|
|
328
|
-
params._id = {
|
|
329
|
-
$in: uids
|
|
330
|
-
};
|
|
331
|
-
}
|
|
332
|
-
return (await this._collection.find(params).toArray()).map(doc => this.initModel(doc));
|
|
333
|
-
}
|
|
334
|
-
/**
|
|
335
|
-
* @override
|
|
336
|
-
*/
|
|
337
|
-
async _get(uid, raiseIfNotFound = false) {
|
|
338
|
-
await this._connect();
|
|
339
|
-
let res = await this._collection.findOne({
|
|
340
|
-
_id: uid
|
|
341
|
-
});
|
|
342
|
-
if (res === null) {
|
|
343
|
-
if (raiseIfNotFound) {
|
|
344
|
-
throw new StoreNotFoundError(uid, this.getName());
|
|
345
|
-
}
|
|
346
|
-
return undefined;
|
|
347
|
-
}
|
|
348
|
-
return this.initModel(res);
|
|
349
|
-
}
|
|
350
|
-
/**
|
|
351
|
-
* @override
|
|
352
|
-
*/
|
|
353
|
-
async __clean() {
|
|
354
|
-
await this._connect();
|
|
355
|
-
await this._collection.deleteMany(undefined);
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
export { MongoStore };
|
|
359
|
-
//# sourceMappingURL=mongodb.js.map
|
package/lib/mongodb.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.js","sourceRoot":"","sources":["../src/mongodb.ts"],"names":[],"mappings":"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"}
|