nongo-driver 3.3.18 → 3.3.19

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/model.js CHANGED
@@ -161,17 +161,17 @@ class Model {
161
161
  .insertOne(this.obj);
162
162
  insertedRevisionId = r.insertedId.toHexString();
163
163
  }
164
- if (this.obj.revision !== 1) {
164
+ if (this.obj.deleted) {
165
+ await this.removeEnvironmentMapping(environmentId, newestRevisionId, insertedRevisionId);
166
+ }
167
+ else if (this.obj.revision !== 1) {
165
168
  // update relevant mappings
166
169
  await this.updateEnvironmentMapping(insertedRevisionId, newestRevisionId, environmentId, clientEnv.isLive);
167
170
  }
168
- if (this.obj.revision === 1) {
171
+ else if (this.obj.revision === 1) {
169
172
  // latest revision id, as that's what we just inserted, and need to save as baseline
170
173
  await this.createEnvironmentMapping(environmentId, insertedRevisionId, clientEnv.isLive);
171
174
  }
172
- if (this.obj.deleted) {
173
- await this.removeEnvironmentMapping(environmentId, newestRevisionId);
174
- }
175
175
  }
176
176
  else {
177
177
  // Upsert non revision models
@@ -183,11 +183,11 @@ class Model {
183
183
  // Return the saved model
184
184
  return this;
185
185
  }
186
- async removeEnvironmentMapping(environmentId, latestRevisionId) {
186
+ async removeEnvironmentMapping(environmentId, latestRevisionId, newRevisionId) {
187
187
  const path = `environments.${environmentId}`;
188
188
  await this.db
189
189
  .collection(this.collectionEnvironmentMapping)
190
- .updateOne({ latestRevisionId }, { $unset: { [path]: '' } });
190
+ .updateOne({ latestRevisionId }, { $unset: { [path]: '' }, $set: { latestRevisionId: newRevisionId } });
191
191
  }
192
192
  async createEnvironmentMapping(environmentId, latestRevisionId, isLive) {
193
193
  await this.db.collection(this.collectionEnvironmentMapping).insertOne({
@@ -369,7 +369,7 @@ class Model {
369
369
  }
370
370
  getCacheKey(query, operation) {
371
371
  const q = JSON.stringify(query, Object.keys(query).sort()); // stable stringify
372
- const hash = crypto_1.default.createHash("md5").update(q).digest("hex"); // short key
372
+ const hash = crypto_1.default.createHash('md5').update(q).digest('hex'); // short key
373
373
  return `${this.db.databaseName}:${this.collection}:${operation}:${hash}`;
374
374
  }
375
375
  trackQueryToId(cacheKey, id) {
@@ -402,7 +402,7 @@ class Model {
402
402
  */
403
403
  async findOne(query = {}) {
404
404
  query = this.prepareQuery(query);
405
- const cacheKey = this.getCacheKey(query, "findOne");
405
+ const cacheKey = this.getCacheKey(query, 'findOne');
406
406
  // Check cache
407
407
  if (this.useCache && this.cache.has(cacheKey)) {
408
408
  return this.cache.get(cacheKey);
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.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.3.18",
3
+ "version": "3.3.19",
4
4
  "description": "A promise driven, schema lead, mongo driver.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -43,4 +43,4 @@
43
43
  "ts-node": "^10.9.1",
44
44
  "typescript": "^4.9.5"
45
45
  }
46
- }
46
+ }
package/src/model.ts CHANGED
@@ -22,9 +22,9 @@ import {CreateSearchIndex} from './interface';
22
22
  import MongoIndex from './mongo-index';
23
23
  import Nongo from './nongo';
24
24
  import Validator from './validator';
25
- import { ICache } from './cache';
25
+ import {ICache} from './cache';
26
26
 
27
- import crypto from "crypto";
27
+ import crypto from 'crypto';
28
28
 
29
29
  const DEFAULT_PATHS = ['_id', 'revision', 'history', 'diffs'];
30
30
 
@@ -36,7 +36,6 @@ function excludePathsFromDiff(diff, excludedPaths = DEFAULT_PATHS) {
36
36
  });
37
37
  }
38
38
 
39
-
40
39
  export default abstract class Model<
41
40
  T extends {
42
41
  _id?: ObjectId;
@@ -63,12 +62,16 @@ export default abstract class Model<
63
62
  private collectionRevision: string | null;
64
63
  private collectionEnvironmentMapping: string | null;
65
64
 
66
- constructor(public nongo: Nongo, public obj: T, public cacheObject?: ICache) {
65
+ constructor(
66
+ public nongo: Nongo,
67
+ public obj: T,
68
+ public cacheObject?: ICache,
69
+ ) {
67
70
  // Set this.db if nongo given
68
71
  if (nongo) {
69
72
  this.db = nongo.db;
70
73
  }
71
- if ( cacheObject ) {
74
+ if (cacheObject) {
72
75
  this.cache = cacheObject;
73
76
  }
74
77
 
@@ -165,9 +168,8 @@ export default abstract class Model<
165
168
  // Get id of newest revision, so we can use that to find the appropriate mapping
166
169
  // this is in case the object we're trying to save either doesn't have _id (for example if it's being imported)
167
170
  // or if the _id simply isn't correct for the environment
168
- const {revision, newestRevisionId} = await this.getLatestRevisionNumber(
169
- revisionQuery,
170
- );
171
+ const {revision, newestRevisionId} =
172
+ await this.getLatestRevisionNumber(revisionQuery);
171
173
  this.obj.previousRevision = this.obj.revision;
172
174
  this.obj.revision = revision;
173
175
  // needed to create a new environment mapping
@@ -207,7 +209,9 @@ export default abstract class Model<
207
209
  .insertOne(this.obj);
208
210
  insertedRevisionId = r.insertedId.toHexString();
209
211
  }
210
- if (this.obj.revision !== 1) {
212
+ if (this.obj.deleted) {
213
+ await this.removeEnvironmentMapping(environmentId, newestRevisionId, insertedRevisionId);
214
+ } else if (this.obj.revision !== 1) {
211
215
  // update relevant mappings
212
216
  await this.updateEnvironmentMapping(
213
217
  insertedRevisionId,
@@ -215,8 +219,7 @@ export default abstract class Model<
215
219
  environmentId,
216
220
  clientEnv.isLive,
217
221
  );
218
- }
219
- if (this.obj.revision === 1) {
222
+ } else if (this.obj.revision === 1) {
220
223
  // latest revision id, as that's what we just inserted, and need to save as baseline
221
224
  await this.createEnvironmentMapping(
222
225
  environmentId,
@@ -224,9 +227,6 @@ export default abstract class Model<
224
227
  clientEnv.isLive,
225
228
  );
226
229
  }
227
- if (this.obj.deleted) {
228
- await this.removeEnvironmentMapping(environmentId, newestRevisionId);
229
- }
230
230
  } else {
231
231
  // Upsert non revision models
232
232
  await this.db
@@ -234,7 +234,7 @@ export default abstract class Model<
234
234
  .replaceOne({_id: this.obj._id}, this.obj, {upsert: true});
235
235
  }
236
236
 
237
- this.invalidateCache({ _id : this.obj._id });
237
+ this.invalidateCache({_id: this.obj._id});
238
238
 
239
239
  // Return the saved model
240
240
  return this;
@@ -243,11 +243,15 @@ export default abstract class Model<
243
243
  private async removeEnvironmentMapping(
244
244
  environmentId: string,
245
245
  latestRevisionId: string,
246
+ newRevisionId: string,
246
247
  ): Promise<void> {
247
248
  const path = `environments.${environmentId}`;
248
249
  await this.db
249
250
  .collection(this.collectionEnvironmentMapping)
250
- .updateOne({latestRevisionId}, {$unset: {[path]: ''}});
251
+ .updateOne(
252
+ {latestRevisionId},
253
+ {$unset: {[path]: ''}, $set: {latestRevisionId: newRevisionId}},
254
+ );
251
255
  }
252
256
 
253
257
  private async createEnvironmentMapping(
@@ -491,9 +495,9 @@ export default abstract class Model<
491
495
  );
492
496
  }
493
497
 
494
- private getCacheKey(query: Filter<Document>, operation: string ): string {
498
+ private getCacheKey(query: Filter<Document>, operation: string): string {
495
499
  const q = JSON.stringify(query, Object.keys(query).sort()); // stable stringify
496
- const hash = crypto.createHash("md5").update(q).digest("hex"); // short key
500
+ const hash = crypto.createHash('md5').update(q).digest('hex'); // short key
497
501
  return `${this.db.databaseName}:${this.collection}:${operation}:${hash}`;
498
502
  }
499
503
 
@@ -530,7 +534,7 @@ export default abstract class Model<
530
534
  public async findOne(query: Filter<Document> = {}): Promise<this> {
531
535
  query = this.prepareQuery(query);
532
536
 
533
- const cacheKey = this.getCacheKey(query, "findOne");
537
+ const cacheKey = this.getCacheKey(query, 'findOne');
534
538
 
535
539
  // Check cache
536
540
  if (this.useCache && this.cache.has(cacheKey)) {
@@ -69,8 +69,8 @@ describe('Testing nongo revisioning', () => {
69
69
  expect(models.length).toEqual(2);
70
70
  })
71
71
 
72
- it('Should revert to revision 0.0.1', async () => {
73
- const revision = await nongo.col(DummyModelWithRevision).getRevision({name: "John", revision: "0.0.1"});
72
+ it('Should revert to revision 1', async () => {
73
+ const revision = await nongo.col(DummyModelWithRevision).getRevision({name: "John", revision: 1});
74
74
  expect(revision.obj.revision).toEqual("0.0.1");
75
75
  const model = await nongo.col(DummyModelWithRevision).findOne({name: 'Nick'});
76
76
  const latestDoc = await nongo.col(DummyModelWithRevision).revertVersion(model.obj._id);