nongo-driver 2.12.6 → 3.0.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/atlas-api.js +6 -6
- package/dist/atlas-api.js.map +1 -1
- package/dist/cursor-iterator.d.ts +1 -2
- package/dist/cursor-iterator.js +3 -1
- package/dist/cursor-iterator.js.map +1 -1
- package/dist/generate-interfaces.js +24 -7
- package/dist/generate-interfaces.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +33 -17
- package/dist/index.js.map +1 -1
- package/dist/interface/atlas/field.d.ts +1 -1
- package/dist/interface/atlas/field.js +1 -0
- package/dist/interface/atlas/field.js.map +1 -1
- package/dist/interface/atlas/index.js +15 -4
- package/dist/interface/atlas/index.js.map +1 -1
- package/dist/interface/index.d.ts +1 -10
- package/dist/interface/index.js +15 -4
- package/dist/interface/index.js.map +1 -1
- package/dist/model.d.ts +12 -13
- package/dist/model.js +26 -29
- package/dist/model.js.map +1 -1
- package/dist/mongo-index.d.ts +2 -3
- package/dist/mongo-index.js.map +1 -1
- package/dist/nongo.d.ts +1 -1
- package/dist/nongo.js +17 -21
- package/dist/nongo.js.map +1 -1
- package/dist/schema-parser.js +10 -10
- package/dist/schema-parser.js.map +1 -1
- package/dist/ts-interface-generator.js +18 -2
- package/dist/ts-interface-generator.js.map +1 -1
- package/dist/validator.js +1 -1
- package/dist/validator.js.map +1 -1
- package/package.json +16 -24
- package/src/atlas-api.ts +11 -40
- package/src/cursor-iterator.ts +1 -3
- package/src/index.ts +1 -1
- package/src/interface/index.ts +0 -11
- package/src/model.ts +25 -39
- package/src/mongo-index.ts +1 -3
- package/src/nongo.ts +1 -5
- package/test/database-helper.ts +26 -13
- package/test/models/dummy-model-changed-obj.ts +12 -0
- package/test/models/dummy-model-obj.ts +40 -0
- package/test/models/dummy-model-with-max-index-obj.ts +195 -0
- package/test/models/text-index-model-modified-obj.ts +12 -0
- package/test/models/text-index-model-obj.ts +11 -0
- package/test/models/text-index-model-too-long-obj.ts +11 -0
- package/test/nongo-multi.test.ts +2 -5
- package/test/nongo.test.ts +125 -172
package/dist/nongo.js
CHANGED
|
@@ -12,6 +12,20 @@ const mongo_index_set_1 = __importDefault(require("./mongo-index-set"));
|
|
|
12
12
|
const schema_parser_1 = __importDefault(require("./schema-parser"));
|
|
13
13
|
const logger = new wbb_logger_1.default('nongo.ts');
|
|
14
14
|
class Nongo {
|
|
15
|
+
/*
|
|
16
|
+
* @return a new ObjectId if {@code id} is null, an ObjectId created using {@code id}.
|
|
17
|
+
*/
|
|
18
|
+
static toObjectId(id) {
|
|
19
|
+
// Set the object id if there isn't one already
|
|
20
|
+
if (id == null) {
|
|
21
|
+
id = new mongodb_1.ObjectId();
|
|
22
|
+
// If {@code this.obj._id} is not an {@code ObjectId} turn it into one
|
|
23
|
+
}
|
|
24
|
+
else if (!(id instanceof mongodb_1.ObjectId)) {
|
|
25
|
+
id = new mongodb_1.ObjectId(id);
|
|
26
|
+
}
|
|
27
|
+
return id;
|
|
28
|
+
}
|
|
15
29
|
// {@code modelClasses} should actually be of type {@code Model[]} throws a
|
|
16
30
|
// compiler error when calling {@code Class.name}
|
|
17
31
|
constructor(params, modelClasses, schemaParsers, mongoClient, poolSize) {
|
|
@@ -28,28 +42,10 @@ class Nongo {
|
|
|
28
42
|
// Map of collection names to a function that when called returns a newly created instance of the appropriate Model
|
|
29
43
|
this.newGeneratorMap = {};
|
|
30
44
|
}
|
|
31
|
-
/*
|
|
32
|
-
* @return a new ObjectId if {@code id} is null, an ObjectId created using {@code id}.
|
|
33
|
-
*/
|
|
34
|
-
static toObjectId(id) {
|
|
35
|
-
// Set the object id if there isn't one already
|
|
36
|
-
if (id == null) {
|
|
37
|
-
id = new mongodb_1.ObjectId();
|
|
38
|
-
// If {@code this.obj._id} is not an {@code ObjectId} turn it into one
|
|
39
|
-
}
|
|
40
|
-
else if (!(id instanceof mongodb_1.ObjectId)) {
|
|
41
|
-
id = new mongodb_1.ObjectId(id);
|
|
42
|
-
}
|
|
43
|
-
return id;
|
|
44
|
-
}
|
|
45
45
|
async connect() {
|
|
46
46
|
var _a;
|
|
47
47
|
// Connect to the database
|
|
48
|
-
this.mongoClient = (_a = this.mongoClient
|
|
49
|
-
useNewUrlParser: true,
|
|
50
|
-
useUnifiedTopology: true,
|
|
51
|
-
poolSize: this.poolSize,
|
|
52
|
-
})));
|
|
48
|
+
this.mongoClient = (_a = this.mongoClient) !== null && _a !== void 0 ? _a : await new mongodb_1.MongoClient(this.uri(), { minPoolSize: this.poolSize }).connect();
|
|
53
49
|
this.db = this.mongoClient.db(this.params.db);
|
|
54
50
|
this.dbName = this.params.db;
|
|
55
51
|
// Map the classes to instances
|
|
@@ -215,7 +211,7 @@ class Nongo {
|
|
|
215
211
|
logger.info(`${context} is creating ${index}...`);
|
|
216
212
|
}
|
|
217
213
|
// If there is an existing index with same name and different config, drop it
|
|
218
|
-
const replacementRequired = existingIndex && !deep_equal_1.default(index, existingIndex);
|
|
214
|
+
const replacementRequired = existingIndex && !(0, deep_equal_1.default)(index, existingIndex);
|
|
219
215
|
if (replacementRequired) {
|
|
220
216
|
logger.info(`${context} is replacing ${existingIndex} with ${index}...`);
|
|
221
217
|
await collection.dropIndex(existingIndex.name);
|
|
@@ -250,7 +246,7 @@ class Nongo {
|
|
|
250
246
|
for (const indexInfo of await collection.indexes()) {
|
|
251
247
|
// Add all the indexes to the {@code indexSet} except _id
|
|
252
248
|
const index = indexInfo.key;
|
|
253
|
-
if (!deep_equal_1.default(index, { _id: 1 })) {
|
|
249
|
+
if (!(0, deep_equal_1.default)(index, { _id: 1 })) {
|
|
254
250
|
// Parse the index info
|
|
255
251
|
const options = {
|
|
256
252
|
unique: indexInfo.unique,
|
package/dist/nongo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nongo.js","sourceRoot":"","sources":["../src/nongo.ts"],"names":[],"mappings":";;;;;AAAA,4DAAmC;AACnC,qCAA8D;AAC9D,4DAAgC;AAChC,4DAAmC;AAGnC,gEAAuC;AACvC,wEAA8C;AAE9C,oEAA2C;AAE3C,MAAM,MAAM,GAAG,IAAI,oBAAM,CAAC,UAAU,CAAC,CAAC;AAEtC,MAAqB,KAAK;
|
|
1
|
+
{"version":3,"file":"nongo.js","sourceRoot":"","sources":["../src/nongo.ts"],"names":[],"mappings":"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"}
|
package/dist/schema-parser.js
CHANGED
|
@@ -15,6 +15,16 @@ const validSchemaKeys = new Set([
|
|
|
15
15
|
'notEmpty',
|
|
16
16
|
]);
|
|
17
17
|
class SchemaParser {
|
|
18
|
+
static standardSchemaError(path, fieldName) {
|
|
19
|
+
const fullPath = path + '.' + fieldName;
|
|
20
|
+
return 'If set, ' + fullPath + ' must be a boolean, a function that returns a boolean or an array of length 2.'
|
|
21
|
+
+ ' The 1st of the array elements can either be a boolean or a function that returns a boolean, if true the '
|
|
22
|
+
+ fullPath + ' field is active. The second element is either a string error'
|
|
23
|
+
+ ' message or a function that should return the error message.';
|
|
24
|
+
}
|
|
25
|
+
static notEmptyTypeError(path) {
|
|
26
|
+
return path + '.type must be either "string" or "array" to be used with "notEmpty"';
|
|
27
|
+
}
|
|
18
28
|
constructor(schema, collection) {
|
|
19
29
|
this.schema = schema;
|
|
20
30
|
this.validKeys = new Set(['_id']);
|
|
@@ -27,16 +37,6 @@ class SchemaParser {
|
|
|
27
37
|
throw err;
|
|
28
38
|
}
|
|
29
39
|
}
|
|
30
|
-
static standardSchemaError(path, fieldName) {
|
|
31
|
-
const fullPath = path + '.' + fieldName;
|
|
32
|
-
return 'If set, ' + fullPath + ' must be a boolean, a function that returns a boolean or an array of length 2.'
|
|
33
|
-
+ ' The 1st of the array elements can either be a boolean or a function that returns a boolean, if true the '
|
|
34
|
-
+ fullPath + ' field is active. The second element is either a string error'
|
|
35
|
-
+ ' message or a function that should return the error message.';
|
|
36
|
-
}
|
|
37
|
-
static notEmptyTypeError(path) {
|
|
38
|
-
return path + '.type must be either "string" or "array" to be used with "notEmpty"';
|
|
39
|
-
}
|
|
40
40
|
parseSchema(parentPath, definition) {
|
|
41
41
|
for (const key of Object.keys(definition)) {
|
|
42
42
|
// Define the path to the current key
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-parser.js","sourceRoot":"","sources":["../src/schema-parser.ts"],"names":[],"mappings":";;;;;AAAA,4DAAgC;AAChC,4DAAmC;AAEnC,MAAM,MAAM,GAAG,IAAI,oBAAM,CAAC,kBAAkB,CAAC,CAAC;AAE9C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,MAAM;IACN,UAAU;IACV,UAAU;IACV,SAAS;IACT,QAAQ;IACR,UAAU;CACX,CAAC,CAAC;AAEH,MAAqB,YAAY;
|
|
1
|
+
{"version":3,"file":"schema-parser.js","sourceRoot":"","sources":["../src/schema-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
2
18
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
3
19
|
if (mod && mod.__esModule) return mod;
|
|
4
20
|
var result = {};
|
|
5
|
-
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result
|
|
6
|
-
result
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
7
23
|
return result;
|
|
8
24
|
};
|
|
9
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-interface-generator.js","sourceRoot":"","sources":["../src/ts-interface-generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ts-interface-generator.js","sourceRoot":"","sources":["../src/ts-interface-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/validator.js
CHANGED
|
@@ -186,7 +186,7 @@ class Validator {
|
|
|
186
186
|
// Check if typeof is correct
|
|
187
187
|
typeof value === type ||
|
|
188
188
|
// Check for date
|
|
189
|
-
type === 'date' && is_date_object_1.default(value);
|
|
189
|
+
type === 'date' && (0, is_date_object_1.default)(value);
|
|
190
190
|
}
|
|
191
191
|
primitiveArrayType(type, array, path) {
|
|
192
192
|
const error = '"' + path + '" must be an array of "' + type + '" elements.';
|
package/dist/validator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nongo-driver",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "A promise driven, schema lead, mongo driver.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -21,32 +21,24 @@
|
|
|
21
21
|
},
|
|
22
22
|
"homepage": "https://github.com/builtbycoup/nongo#readme",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"clone-deep": "^
|
|
24
|
+
"clone-deep": "^4.0.1",
|
|
25
25
|
"cmd-promise": "^1.2.0",
|
|
26
|
-
"deep-equal": "^
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"mkdirp-promise": "^5.0.1",
|
|
31
|
-
"mongodb": "^3.5.5",
|
|
26
|
+
"deep-equal": "^2.2.2",
|
|
27
|
+
"is-date-object": "^1.0.5",
|
|
28
|
+
"minimist": "^1.2.8",
|
|
29
|
+
"mongodb": "^5.7.0",
|
|
32
30
|
"request-promise": "^4.2.6",
|
|
33
|
-
"rimraf": "^2.6.2",
|
|
34
31
|
"tslint": "^5.8.0",
|
|
35
|
-
"wbb-logger": "^1.0.0"
|
|
36
|
-
"winston": "^3.0.0-rc1"
|
|
32
|
+
"wbb-logger": "^1.0.0"
|
|
37
33
|
},
|
|
38
34
|
"devDependencies": {
|
|
39
|
-
"@types/jest": "^
|
|
40
|
-
"@types/
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"ts-jest": "^25.3.1",
|
|
48
|
-
"ts-node": "^8.8.2",
|
|
49
|
-
"typescript": "^3.7.5",
|
|
50
|
-
"typescript-eslint-parser": "^9.0.0"
|
|
35
|
+
"@types/jest": "^29.4.0",
|
|
36
|
+
"@types/node": "^20.4.1",
|
|
37
|
+
"jest": "^29.5.0",
|
|
38
|
+
"mongodb-memory-server": "^8.13.0",
|
|
39
|
+
"nock": "^13.3.1",
|
|
40
|
+
"ts-jest": "29.0.5",
|
|
41
|
+
"ts-node": "^10.9.1",
|
|
42
|
+
"typescript": "^4.9.5"
|
|
51
43
|
}
|
|
52
|
-
}
|
|
44
|
+
}
|
package/src/atlas-api.ts
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import deepEqual from 'deep-equal';
|
|
2
2
|
import rp from 'request-promise';
|
|
3
3
|
import Logger from 'wbb-logger';
|
|
4
|
-
import {
|
|
5
|
-
Analyzer,
|
|
6
|
-
AtlasParams,
|
|
7
|
-
AtlasSearchIndex,
|
|
8
|
-
CreateSearchIndex,
|
|
9
|
-
} from './interface/atlas';
|
|
4
|
+
import {Analyzer, AtlasParams, AtlasSearchIndex, CreateSearchIndex} from './interface/atlas';
|
|
10
5
|
|
|
11
6
|
const logger = new Logger('atlas-api.ts');
|
|
12
7
|
|
|
13
8
|
export default class AtlasApi {
|
|
9
|
+
|
|
14
10
|
private readonly ftsUrl: string;
|
|
15
11
|
private readonly defaultOptions;
|
|
16
12
|
|
|
@@ -38,10 +34,7 @@ export default class AtlasApi {
|
|
|
38
34
|
});
|
|
39
35
|
}
|
|
40
36
|
|
|
41
|
-
public async getSearchIndexes(
|
|
42
|
-
db: string,
|
|
43
|
-
collection: string,
|
|
44
|
-
): Promise<AtlasSearchIndex[]> {
|
|
37
|
+
public async getSearchIndexes(db: string, collection: string): Promise<AtlasSearchIndex[]> {
|
|
45
38
|
const url = `${this.ftsUrl}/indexes/${db}/${collection}`;
|
|
46
39
|
return rp({
|
|
47
40
|
...this.defaultOptions,
|
|
@@ -49,11 +42,7 @@ export default class AtlasApi {
|
|
|
49
42
|
});
|
|
50
43
|
}
|
|
51
44
|
|
|
52
|
-
public async createSearchIndex(
|
|
53
|
-
db: string,
|
|
54
|
-
collection: string,
|
|
55
|
-
index: CreateSearchIndex,
|
|
56
|
-
): Promise<any> {
|
|
45
|
+
public async createSearchIndex(db: string, collection: string, index: CreateSearchIndex): Promise<any> {
|
|
57
46
|
this.logIndexChange(db, collection, 'Creating', index.name);
|
|
58
47
|
const url = `${this.ftsUrl}/indexes`;
|
|
59
48
|
return rp({
|
|
@@ -68,11 +57,7 @@ export default class AtlasApi {
|
|
|
68
57
|
});
|
|
69
58
|
}
|
|
70
59
|
|
|
71
|
-
public async ensureSearchIndexes(
|
|
72
|
-
db: string,
|
|
73
|
-
collection: string,
|
|
74
|
-
createParams: CreateSearchIndex[],
|
|
75
|
-
): Promise<AtlasSearchIndex[]> {
|
|
60
|
+
public async ensureSearchIndexes(db: string, collection: string, createParams: CreateSearchIndex[]): Promise<AtlasSearchIndex[]> {
|
|
76
61
|
const existingIndexes = await this.getSearchIndexes(db, collection);
|
|
77
62
|
const toRemove = new Map<string, AtlasSearchIndex>();
|
|
78
63
|
existingIndexes.forEach((e) => toRemove.set(e.name, e));
|
|
@@ -87,6 +72,7 @@ export default class AtlasApi {
|
|
|
87
72
|
} else {
|
|
88
73
|
await this.createSearchIndex(db, collection, cParams);
|
|
89
74
|
}
|
|
75
|
+
|
|
90
76
|
}
|
|
91
77
|
|
|
92
78
|
for (const index of toRemove.values()) {
|
|
@@ -96,12 +82,7 @@ export default class AtlasApi {
|
|
|
96
82
|
return await this.getSearchIndexes(db, collection);
|
|
97
83
|
}
|
|
98
84
|
|
|
99
|
-
public async updateSearchIndex(
|
|
100
|
-
db: string,
|
|
101
|
-
collection: string,
|
|
102
|
-
existingIndex: AtlasSearchIndex,
|
|
103
|
-
createParams: CreateSearchIndex,
|
|
104
|
-
): Promise<any> {
|
|
85
|
+
public async updateSearchIndex(db: string, collection: string, existingIndex: AtlasSearchIndex, createParams: CreateSearchIndex): Promise<any> {
|
|
105
86
|
if (deepEqual(existingIndex.mappings, createParams.mappings)) {
|
|
106
87
|
return;
|
|
107
88
|
}
|
|
@@ -122,11 +103,7 @@ export default class AtlasApi {
|
|
|
122
103
|
});
|
|
123
104
|
}
|
|
124
105
|
|
|
125
|
-
public async deleteSearchIndex(
|
|
126
|
-
db: string,
|
|
127
|
-
collection: string,
|
|
128
|
-
existingIndex: AtlasSearchIndex,
|
|
129
|
-
): Promise<any> {
|
|
106
|
+
public async deleteSearchIndex(db: string, collection: string, existingIndex: AtlasSearchIndex): Promise<any> {
|
|
130
107
|
this.logIndexChange(db, collection, 'Deleting', existingIndex.name);
|
|
131
108
|
const url = `${this.ftsUrl}/indexes/${existingIndex.indexID}`;
|
|
132
109
|
return rp({
|
|
@@ -136,14 +113,8 @@ export default class AtlasApi {
|
|
|
136
113
|
});
|
|
137
114
|
}
|
|
138
115
|
|
|
139
|
-
private logIndexChange(
|
|
140
|
-
db
|
|
141
|
-
collection: string,
|
|
142
|
-
action: string,
|
|
143
|
-
indexName: string,
|
|
144
|
-
) {
|
|
145
|
-
logger.info(
|
|
146
|
-
`${action} search index "${indexName}" for collection ${db}.${collection}`,
|
|
147
|
-
);
|
|
116
|
+
private logIndexChange(db: string, collection: string, action: string, indexName: string) {
|
|
117
|
+
logger.info(`${action} search index "${indexName}" for collection ${db}.${collection}`);
|
|
148
118
|
}
|
|
119
|
+
|
|
149
120
|
}
|
package/src/cursor-iterator.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import {Cursor} from 'mongodb';
|
|
2
|
-
|
|
3
1
|
export default class CursorIterator<T = any> implements AsyncIterator<T> {
|
|
4
2
|
|
|
5
|
-
constructor(private cursor
|
|
3
|
+
constructor(private cursor, private map = (next) => next) {
|
|
6
4
|
}
|
|
7
5
|
|
|
8
6
|
public [Symbol.asyncIterator] = () => this;
|
package/src/index.ts
CHANGED
|
@@ -11,4 +11,4 @@ export {default as generateInterfaces} from './generate-interfaces';
|
|
|
11
11
|
export {default as NongoMap} from './nongo-map';
|
|
12
12
|
export * from './interface';
|
|
13
13
|
export {default as AtlasApi} from './atlas-api';
|
|
14
|
-
export {ObjectId, MongoClient} from 'mongodb';
|
|
14
|
+
export {ObjectId, MongoClient, SortDirection, CollectionInfo, Db, DeleteResult, FindOptions, Filter, Document, UpdateFilter, UpdateOptions} from 'mongodb';
|
package/src/interface/index.ts
CHANGED
|
@@ -4,14 +4,3 @@ export * from './atlas';
|
|
|
4
4
|
* Defines an object that can be created via the 'new' keyword
|
|
5
5
|
*/
|
|
6
6
|
export type Newable<T = any> = new(...args: any[]) => T;
|
|
7
|
-
|
|
8
|
-
export interface NongoWriteResult {
|
|
9
|
-
nModified: number;
|
|
10
|
-
ok: number;
|
|
11
|
-
n: number;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface NongoDeleteResult {
|
|
15
|
-
ok?: number;
|
|
16
|
-
n?: number;
|
|
17
|
-
}
|
package/src/model.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import clone from 'clone-deep';
|
|
2
|
-
import
|
|
3
|
-
import {BulkWriteOpResultObject, CollectionBulkWriteOptions, Db, ObjectId} from 'mongodb';
|
|
2
|
+
import {AggregateOptions, AnyBulkWriteOperation, BulkWriteOptions, BulkWriteResult, CountDocumentsOptions, Db, DeleteOptions, DeleteResult, Document, Filter, FindOptions, ObjectId, UpdateFilter, UpdateOptions, UpdateResult} from 'mongodb';
|
|
4
3
|
import Logger from 'wbb-logger';
|
|
5
4
|
|
|
6
5
|
import CursorIterator from './cursor-iterator';
|
|
7
|
-
import {CreateSearchIndex
|
|
6
|
+
import {CreateSearchIndex} from './interface';
|
|
8
7
|
import MongoIndex from './mongo-index';
|
|
9
8
|
import Nongo from './nongo';
|
|
10
9
|
import Validator from './validator';
|
|
@@ -47,18 +46,7 @@ export default abstract class Model<T extends {_id?: ObjectId} = any> {
|
|
|
47
46
|
|
|
48
47
|
public async validate() {
|
|
49
48
|
const schema = this.nongo.schema[this.name];
|
|
50
|
-
return
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
public async dumpCollection(dir: string, gzip = false): Promise<void> {
|
|
54
|
-
logger.info(`Taking dump of ${this.name}...`);
|
|
55
|
-
|
|
56
|
-
const script =
|
|
57
|
-
`mkdir -p ${dir};` +
|
|
58
|
-
`mongodump --uri "${this.nongo.uri()}" -c ${this.name} ${gzip ? '--gzip' : ''} --out ${dir};`;
|
|
59
|
-
|
|
60
|
-
await cmd(script);
|
|
61
|
-
logger.info(`Dump written to ${dir}...`);
|
|
49
|
+
return new Validator(schema, this).validate();
|
|
62
50
|
}
|
|
63
51
|
|
|
64
52
|
public idString(): string {
|
|
@@ -160,7 +148,7 @@ export default abstract class Model<T extends {_id?: ObjectId} = any> {
|
|
|
160
148
|
}
|
|
161
149
|
|
|
162
150
|
public async byId(id) {
|
|
163
|
-
return
|
|
151
|
+
return this.findOne({_id: id});
|
|
164
152
|
}
|
|
165
153
|
|
|
166
154
|
/*
|
|
@@ -168,7 +156,7 @@ export default abstract class Model<T extends {_id?: ObjectId} = any> {
|
|
|
168
156
|
* @param options: the query options e.g. sorting, limiting results etc.
|
|
169
157
|
* @return the results of the query as an array of models.
|
|
170
158
|
*/
|
|
171
|
-
public async find(query:
|
|
159
|
+
public async find(query: Filter<Document> = {}, options?: FindOptions<Document>): Promise<this[]> {
|
|
172
160
|
return this.toArray(await this.findIterator(query, options));
|
|
173
161
|
}
|
|
174
162
|
|
|
@@ -177,9 +165,9 @@ export default abstract class Model<T extends {_id?: ObjectId} = any> {
|
|
|
177
165
|
* @param options?: CollectionBulkWriteOptions
|
|
178
166
|
*/
|
|
179
167
|
public async bulkWrite(
|
|
180
|
-
operations:
|
|
181
|
-
options?:
|
|
182
|
-
): Promise<
|
|
168
|
+
operations: AnyBulkWriteOperation<Document>[],
|
|
169
|
+
options?: BulkWriteOptions,
|
|
170
|
+
): Promise<BulkWriteResult> {
|
|
183
171
|
return this.db.collection(this.collection).bulkWrite(operations, options);
|
|
184
172
|
}
|
|
185
173
|
|
|
@@ -188,9 +176,9 @@ export default abstract class Model<T extends {_id?: ObjectId} = any> {
|
|
|
188
176
|
* @param options: the query options e.g. sorting, limiting results etc.
|
|
189
177
|
* @return the results of the query as an {@link AsyncIterator}.
|
|
190
178
|
*/
|
|
191
|
-
public async
|
|
192
|
-
query:
|
|
193
|
-
options?:
|
|
179
|
+
public async findIterator(
|
|
180
|
+
query: Filter<Document> = {},
|
|
181
|
+
options?: FindOptions<Document>,
|
|
194
182
|
): Promise<CursorIterator<this>> {
|
|
195
183
|
query = this.prepareQuery(query);
|
|
196
184
|
const cursor = this.db.collection(this.collection).find(query, options);
|
|
@@ -205,7 +193,7 @@ export default abstract class Model<T extends {_id?: ObjectId} = any> {
|
|
|
205
193
|
* @param query: A mongo db query.
|
|
206
194
|
* @return the result of the query as a model.
|
|
207
195
|
*/
|
|
208
|
-
public async findOne(query:
|
|
196
|
+
public async findOne(query: Filter<Document> = {}): Promise<this> {
|
|
209
197
|
query = this.prepareQuery(query);
|
|
210
198
|
const doc = await this.db.collection(this.collection).findOne(query);
|
|
211
199
|
|
|
@@ -219,19 +207,18 @@ export default abstract class Model<T extends {_id?: ObjectId} = any> {
|
|
|
219
207
|
return new this.constructor(this.nongo, doc);
|
|
220
208
|
}
|
|
221
209
|
|
|
222
|
-
public async remove(query:
|
|
210
|
+
public async remove(query: Filter<Document>, options?: DeleteOptions): Promise<DeleteResult> {
|
|
223
211
|
query = this.prepareQuery(query);
|
|
224
|
-
|
|
225
|
-
return res.result;
|
|
212
|
+
return this.db.collection(this.collection).deleteMany(query, options);
|
|
226
213
|
}
|
|
227
214
|
|
|
228
|
-
public async aggregate(pipeline:
|
|
229
|
-
return
|
|
215
|
+
public async aggregate(pipeline: Document[], options?: AggregateOptions): Promise<any[]> {
|
|
216
|
+
return this.toArray(await this.aggregateIterator(pipeline, options));
|
|
230
217
|
}
|
|
231
218
|
|
|
232
219
|
public async aggregateIterator(
|
|
233
|
-
pipeline:
|
|
234
|
-
options?:
|
|
220
|
+
pipeline: Document[],
|
|
221
|
+
options?: AggregateOptions,
|
|
235
222
|
): Promise<CursorIterator<any>> {
|
|
236
223
|
options = options || {};
|
|
237
224
|
if (options.allowDiskUse == null) {
|
|
@@ -244,20 +231,19 @@ export default abstract class Model<T extends {_id?: ObjectId} = any> {
|
|
|
244
231
|
return new CursorIterator(cursor);
|
|
245
232
|
}
|
|
246
233
|
|
|
247
|
-
public async distinct(field: string) {
|
|
248
|
-
return
|
|
234
|
+
public async distinct(field: string, filter: Filter<Document> = {}) {
|
|
235
|
+
return this.db.collection(this.collection).distinct(field, filter);
|
|
249
236
|
}
|
|
250
237
|
|
|
251
|
-
public async update(query:
|
|
238
|
+
public async update(query: Filter<Document>, updates: UpdateFilter<Document>, options?: UpdateOptions): Promise<UpdateResult<Document>> {
|
|
252
239
|
query = this.prepareQuery(query);
|
|
253
|
-
|
|
240
|
+
return this.db
|
|
254
241
|
.collection(this.collection)
|
|
255
|
-
.updateMany(query, updates);
|
|
256
|
-
return res.result;
|
|
242
|
+
.updateMany(query, updates, options);
|
|
257
243
|
}
|
|
258
244
|
|
|
259
|
-
public async count(query = {}): Promise<number> {
|
|
260
|
-
return
|
|
245
|
+
public async count(query: Document = {}, options?: CountDocumentsOptions): Promise<number> {
|
|
246
|
+
return this.db.collection(this.collection).countDocuments(query, options);
|
|
261
247
|
}
|
|
262
248
|
|
|
263
249
|
/*
|
package/src/mongo-index.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import {IndexOptions} from 'mongodb';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Very basic model used to hold information on a mongo index.
|
|
5
3
|
*/
|
|
@@ -13,7 +11,7 @@ export default class MongoIndex {
|
|
|
13
11
|
* @param options IndexOptions - options for the index these match the options defined here:
|
|
14
12
|
* https://mongodb.github.io/node-mongodb-native/api-generated/collection.html#ensureindex
|
|
15
13
|
*/
|
|
16
|
-
constructor(index: {[key: string]: 1 | -1 | 'text'}, public readonly options:
|
|
14
|
+
constructor(index: {[key: string]: 1 | -1 | 'text'}, public readonly options: any = {}, validateName = true) {
|
|
17
15
|
// Delete any keys from options that have an undefined value. We do this to standardise the options so they can
|
|
18
16
|
// easily be compared
|
|
19
17
|
for (const key of Object.keys(options)) {
|
package/src/nongo.ts
CHANGED
|
@@ -60,11 +60,7 @@ export default class Nongo {
|
|
|
60
60
|
|
|
61
61
|
public async connect() {
|
|
62
62
|
// Connect to the database
|
|
63
|
-
this.mongoClient = this.mongoClient ?? await MongoClient
|
|
64
|
-
useNewUrlParser: true,
|
|
65
|
-
useUnifiedTopology: true,
|
|
66
|
-
poolSize: this.poolSize,
|
|
67
|
-
});
|
|
63
|
+
this.mongoClient = this.mongoClient ?? await new MongoClient(this.uri(), {minPoolSize: this.poolSize}).connect();
|
|
68
64
|
this.db = this.mongoClient.db(this.params.db);
|
|
69
65
|
this.dbName = this.params.db;
|
|
70
66
|
|