nongo-driver 3.2.1 → 3.3.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/model.d.ts CHANGED
@@ -13,6 +13,8 @@ export default abstract class Model<T extends {
13
13
  revision?: string;
14
14
  history?: RevisionHistory[];
15
15
  diffs?: any;
16
+ name?: string;
17
+ environment?: string;
16
18
  } = any> {
17
19
  nongo: Nongo;
18
20
  obj: T;
@@ -22,6 +24,7 @@ export default abstract class Model<T extends {
22
24
  name: string;
23
25
  dynamic: boolean;
24
26
  private collectionRevision;
27
+ private collectionEnvironmentMapping;
25
28
  constructor(nongo: Nongo, obj: T);
26
29
  getCollectionRevision(): string;
27
30
  protected schemaVersioningEnabled(): boolean;
@@ -29,6 +32,7 @@ export default abstract class Model<T extends {
29
32
  getAtlasSearchIndexes(): CreateSearchIndex[];
30
33
  validate(): Promise<string[]>;
31
34
  idString(): string;
35
+ private getLatestRevisionNumber;
32
36
  save(): Promise<this>;
33
37
  revertVersion(id: string, revisionId: string): Promise<this>;
34
38
  getRevisionObjForEnvironment(isLive: boolean, id: string): Promise<this>;
package/dist/model.js CHANGED
@@ -13,6 +13,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  const clone_deep_1 = __importDefault(require("clone-deep"));
14
14
  const mongodb_1 = require("mongodb");
15
15
  const just_diff_1 = require("just-diff");
16
+ const gt_1 = __importDefault(require("semver/functions/gt"));
17
+ const inc_1 = __importDefault(require("semver/functions/inc"));
16
18
  const cursor_iterator_1 = __importDefault(require("./cursor-iterator"));
17
19
  const nongo_1 = __importDefault(require("./nongo"));
18
20
  const validator_1 = __importDefault(require("./validator"));
@@ -40,8 +42,10 @@ class Model {
40
42
  this.obj._id = new mongodb_1.ObjectId(this.obj._id);
41
43
  }
42
44
  this.collection = this.defineCollection();
43
- this.collectionRevision =
45
+ this.collectionRevision = // e.g. BlockRevision
44
46
  this.schemaVersioningEnabled() ? `${this.defineCollection()}${nongo_1.default.REVISION}` : null;
47
+ this.collectionEnvironmentMapping = // e.g. BlockEnvironmentMapping
48
+ this.schemaVersioningEnabled() ? `${this.defineCollection()}${nongo_1.default.ENVIRONMENT_MAPPING}` : null;
45
49
  this.name = this.constructor.name;
46
50
  this.dynamic = false;
47
51
  this.initStructure();
@@ -65,6 +69,23 @@ class Model {
65
69
  idString() {
66
70
  return this.obj._id.toHexString();
67
71
  }
72
+ async getLatestRevisionNumber(name) {
73
+ const liveObj = await this.db.collection(this.collection).findOne({ name }, { sort: { revision: -1 } });
74
+ const revObj = await this.db.collection(this.collectionRevision).findOne({ name }, { sort: { revision: -1 } });
75
+ let version = "0.0.1";
76
+ if (liveObj && revObj) {
77
+ (0, gt_1.default)(liveObj.revision, revObj.revision) ?
78
+ version = (0, inc_1.default)(liveObj.revision, 'patch') :
79
+ version = (0, inc_1.default)(revObj.revision, 'patch');
80
+ }
81
+ else if (liveObj) {
82
+ version = (0, inc_1.default)(liveObj.revision, 'patch');
83
+ }
84
+ else if (revObj) {
85
+ version = (0, inc_1.default)(revObj.revision, 'patch');
86
+ }
87
+ return version;
88
+ }
68
89
  /*
69
90
  * Upsert the model into the database
70
91
  */
@@ -83,26 +104,44 @@ class Model {
83
104
  this.throwValidationError(err);
84
105
  }
85
106
  }
86
- let revisionObj;
87
- const revisionObjId = new mongodb_1.ObjectId();
88
107
  if (this.collectionRevision) {
89
- revisionObj = await this.db.collection(this.collection).findOne({ _id: this.obj._id });
90
- this.obj.revision = nongo_1.default.revisionNumber(revisionObj === null || revisionObj === void 0 ? void 0 : revisionObj.revision);
91
- this.obj.history = nongo_1.default.revisionHistory(revisionObj, revisionObjId);
92
- // get diffs
93
- if (revisionObj) {
94
- delete this.obj.diffs;
95
- const diffs = (0, just_diff_1.diff)(revisionObj, this.obj);
96
- this.obj.diffs = excludePathsFromDiff(diffs);
108
+ const query = mongodb_1.ObjectId.isValid(this.obj.environment) ? { _id: new mongodb_1.ObjectId(this.obj.environment) } : { isLive: true };
109
+ const clientEnv = await this.db.collection('Environment').findOne(query);
110
+ const revisionObjId = new mongodb_1.ObjectId();
111
+ const { name } = this.obj;
112
+ this.obj.revision = await this.getLatestRevisionNumber(name);
113
+ if (clientEnv.isLive) {
114
+ const liveRevisionObject = await this.db.collection(this.collection).findOne({ _id: this.obj._id });
115
+ this.obj.history = nongo_1.default.revisionHistory(liveRevisionObject, revisionObjId);
116
+ await this.db
117
+ .collection(this.collection)
118
+ .replaceOne({ _id: this.obj._id }, this.obj, { upsert: true });
119
+ if (liveRevisionObject) {
120
+ liveRevisionObject._id = revisionObjId;
121
+ await this.db.collection(this.collectionRevision).insertOne(liveRevisionObject);
122
+ }
123
+ }
124
+ else {
125
+ const otherRevisionObject = await this.db.collection(this.collectionRevision).findOne({ _id: this.obj._id });
126
+ if (otherRevisionObject) {
127
+ this.obj.history = nongo_1.default.revisionHistory(otherRevisionObject, revisionObjId);
128
+ otherRevisionObject._id = revisionObjId;
129
+ await this.db.collection(this.collectionRevision).insertOne(otherRevisionObject);
130
+ }
131
+ await this.db.collection(this.collectionRevision).insertOne(this.obj);
132
+ }
133
+ if (this.obj.revision === "0.0.1") {
134
+ await this.db.collection(this.collectionEnvironmentMapping).insertOne({
135
+ originalId: this.idString(),
136
+ environments: { [clientEnv._id.toHexString()]: this.idString() }
137
+ });
97
138
  }
98
139
  }
99
- // Upsert
100
- const UpsertResult = await this.db
101
- .collection(this.collection)
102
- .replaceOne({ _id: this.obj._id }, this.obj, { upsert: true });
103
- if (UpsertResult.modifiedCount === 1 && this.collectionRevision) {
104
- revisionObj._id = revisionObjId;
105
- await this.db.collection(this.collectionRevision).insertOne(revisionObj);
140
+ else {
141
+ // Upsert
142
+ await this.db
143
+ .collection(this.collection)
144
+ .replaceOne({ _id: this.obj._id }, this.obj, { upsert: true });
106
145
  }
107
146
  // Return the saved model
108
147
  return this;
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":";;;;;;;;;;;;AAAA,4DAA+B;AAC/B,qCAA+O;AAC/O,yCAA+B;AAC/B,6DAA2C;AAC3C,+DAA8C;AAE9C,wEAA+C;AAG/C,oDAA4B;AAC5B,4DAAoC;AAEpC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;AAE7D,SAAS,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,aAAa;IAC/D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACtC,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAQD,MAA8B,KAAK;IAWjC,YAAmB,KAAY,EAAS,GAAM;QAA3B,UAAK,GAAL,KAAK,CAAO;QAAS,QAAG,GAAH,GAAG,CAAG;QAV9C,sEAAsE;QACtE,uDAAuD;QAChD,iBAAY,GAAS,IAAI,CAAC;QAS/B,6BAA6B;QAC7B,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;SACpB;QAED,0DAA0D;QAC1D,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE;YAChD,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,kBAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,IAAI,CAAC,kBAAkB,GAAG,qBAAqB;YAC7C,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,eAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,IAAI,CAAC,4BAA4B,GAAG,+BAA+B;YACjE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,eAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACnG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEM,qBAAqB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAES,uBAAuB;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,eAAe;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,qBAAqB;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,IAAI,mBAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChD,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,IAAY;QAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC;QACjG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC;QACxG,IAAI,OAAO,GAAG,OAAO,CAAC;QACtB,IAAI,OAAO,IAAI,MAAM,EAAE;YACrB,IAAA,YAAQ,EAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3C,OAAO,GAAG,IAAA,aAAU,EAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBACjD,OAAO,GAAG,IAAA,aAAU,EAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SAClD;aAAM,IAAI,OAAO,EAAE;YAClB,OAAO,GAAG,IAAA,aAAU,EAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;SAChD;aAAM,IAAI,MAAM,EAAE;YACjB,OAAO,GAAG,IAAA,aAAU,EAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;SAC/C;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI;QACf,+CAA+C;QAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,eAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE9C,kFAAkF;QAClF,IAAI,CAAC,GAAG,GAAG,IAAA,oBAAK,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,wEAAwE;QACxE,yBAAyB;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,sBAAsB;YACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;aAChC;SACF;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,MAAM,KAAK,GAAG,kBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAC,GAAG,EAAE,IAAI,kBAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,IAAI,EAAC,CAAA;YAChH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzE,MAAM,aAAa,GAAG,IAAI,kBAAQ,EAAE,CAAC;YAErC,MAAM,EAAC,IAAI,EAAC,GAAG,IAAI,CAAC,GAAG,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAE7D,IAAI,SAAS,CAAC,MAAM,EAAE;gBACpB,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC,CAAC,CAAC;gBAClG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,eAAK,CAAC,eAAe,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;gBAC5E,MAAM,IAAI,CAAC,EAAE;qBACV,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;qBAC3B,UAAU,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC7D,IAAI,kBAAkB,EAAE;oBACtB,kBAAkB,CAAC,GAAG,GAAG,aAAa,CAAC;oBACvC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;iBACjF;aACF;iBAAM;gBACL,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC,CAAC,CAAC;gBAC3G,IAAI,mBAAmB,EAAE;oBACvB,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,eAAK,CAAC,eAAe,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;oBAC7E,mBAAmB,CAAC,GAAG,GAAG,aAAa,CAAC;oBACxC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;iBAClF;gBACD,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvE;YACD,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE;gBACjC,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,SAAS,CAAC;oBACpE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE;oBAC3B,YAAY,EAAE,EAAC,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAC;iBAC/D,CAAC,CAAA;aACH;SACF;aAAM;YACL,SAAS;YACT,MAAM,IAAI,CAAC,EAAE;iBACZ,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;iBAC3B,UAAU,CAAC,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;SAC5D;QAED,yBAAyB;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,UAAkB;QACvD,MAAM,aAAa,GAAG,IAAI,kBAAQ,EAAE,CAAC;QACrC,yBAAyB;QACzB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,IAAI,kBAAQ,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;QAEvF,eAAe;QACf,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,IAAI,kBAAQ,CAAC,UAAU,CAAC,EAAC,CAAC,CAAC;QAE/G,0BAA0B;QAC1B,WAAW,CAAC,QAAQ,GAAG,eAAK,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1D,WAAW,CAAC,OAAO,GAAG,eAAK,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAChE,OAAO,WAAW,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACrC,WAAW,CAAC,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAChD,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QAE1B,MAAM,IAAI,CAAC,EAAE;aACV,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;aAC3B,UAAU,CAAC,EAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAC,EAAE,WAAW,CAAC,CAAC;QAG3C,gFAAgF;QAChF,GAAG,CAAC,GAAG,GAAG,aAAa,CAAC;QACxB,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAEjE,4BAA4B;QAC5B,aAAa;QACb,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,4BAA4B,CAAC,MAAe,EAAE,EAAU;QACnE,IAAI,GAAG,CAAC;QACR,MAAM,GAAG,GAAG,IAAI,kBAAQ,CAAC,EAAE,CAAC,CAAC;QAE7B,IAAI,MAAM,EAAE;YACV,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAC,CAAC,CAAC;SAChE;aAAM;YACL,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,EAAC,GAAG,EAAC,CAAC,CAAC;SACxE;QAED,kCAAkC;QAClC,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QAED,4BAA4B;QAC5B,aAAa;QACb,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,UAAU,EAAE,OAAO;QAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACtC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAEvD,6CAA6C;YAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3D,SAAS;aACV;YAED,4CAA4C;YAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC1D,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE/B,oEAAoE;aACrE;iBAAM;gBACL,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBAE3B,2EAA2E;gBAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACxB,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBACxB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;4BAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;yBAC3B;oBACH,CAAC,CAAC,CAAC;oBAEH,mDAAmD;iBACpD;qBAAM,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBACrD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;iBACzB;aACF;SACF;IACH,CAAC;IAED;;;;;;OAMG;IACI,SAAS,CAAC,IAAI,EAAE,GAAG;QACxB,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;SACR;QAED,sEAAsE;QACtE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;SAClB;aAAM;YACL,mDAAmD;YACnD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;YAChD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACxB,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;aAC1D;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;aACtC;SACF;IACH,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,EAAE;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAE,OAA0B;QACzD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,kBAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,EAAC,GAAG,EAAE,EAAC,GAAG,EAAE,WAAW,EAAC,EAAC,EAAE,EAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,YAAY,EAAC,EAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACrI,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAuB,EAAE,OAA+B;QAChF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACxF,CAAC;IAEM,KAAK,CAAC,WAAW,CAAE,KAAuB;QAC/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE7E,kCAAkC;QAClC,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QAED,sCAAsC;QACtC,aAAa;QACb,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,QAA0B,EAAE,EAAE,OAA+B;QAC7E,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,SAAS,CACpB,UAA6C,EAC7C,OAA0B;QAE1B,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAE,YAAY,CACxB,QAA0B,EAAE,EAC5B,OAA+B,EAC/B,UAAU,GAAG,IAAI,CAAC,UAAU;QAE5B,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnE,OAAO,IAAI,yBAAc,CACvB,MAAM;QACR,aAAa;QACX,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAC/C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAO,CAAC,QAA0B,EAAE;QAC/C,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAErE,kCAAkC;QAClC,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QAED,sCAAsC;QACtC,aAAa;QACb,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAuB,EAAE,OAAuB;QAClE,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,QAAoB,EAAE,OAA0B;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,QAAoB,EACpB,OAA0B;QAE1B,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QACxB,IAAI,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE;YAChC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;SAC7B;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE;aACzB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;aAC3B,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChC,aAAa;QACb,OAAO,IAAI,yBAAc,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,SAA2B,EAAE;QAChE,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAuB,EAAE,OAA+B,EAAE,OAAuB;QACnG,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,EAAE;aACX,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;aAC3B,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,QAAkB,EAAE,EAAE,OAA+B;QACtE,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAOM,mBAAmB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,KAAK;QACvB,KAAK,GAAG,IAAA,oBAAK,EAAC,KAAK,CAAC,CAAC;QACrB,MAAM,EAAC,GAAG,EAAC,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,KAAK,CAAC;SACd;QAED,sDAAsD;QACtD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,KAAK,CAAC,GAAG,GAAG,eAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACzC;aAAM,IAAI,GAAG,CAAC,GAAG,EAAE;YAClB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACnF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACO,gBAAgB;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAEO,oBAAoB,CAAC,MAAgB;QAC3C,IAAI,MAAM,CAAC;QACX,IAAI;YACF,MAAM,GAAG,qCAAqC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;SAC1E;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,GAAG,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC;SACpD;QACD,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,YAAiB;QACzC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC3C,4DAA4D;YAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,MAAM,CAAC,MAAM,CAAC;YACrB,OAAO,MAAM,CAAC,OAAO,CAAC;YACtB,OAAO,MAAM,CAAC,IAAI,CAAC;YAEnB,oCAAoC;YACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;oBAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;iBAChC;aACF;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;aAC9B;SACF;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,cAAoC;;QACxD,MAAM,GAAG,GAAG,EAAE,CAAC;;YACf,aAAa;YACb,KAAsB,eAAA,mBAAA,cAAA,cAAc,CAAA,oBAAA;gBAAd,8BAAc;gBAAd,WAAc;;oBAAzB,MAAM,CAAC,KAAA,CAAA;oBAChB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;;aACb;;;;;;;;;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,8BAA8B;QAC9B,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE;YACpB,IAAI,CAAC,GAAG,GAAG,EAAO,CAAC;SACpB;QAED,+EAA+E;QAC/E,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACtD;IACH,CAAC;IAEO,OAAO,CAAC,MAAM,EAAE,YAAY;QAClC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YAEzB,wCAAwC;YACxC,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC3C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YACpB,QAAQ;gBACN,OAAO,QAAQ,KAAK,UAAU;oBAC5B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;oBACjC,CAAC,CAAC,QAAQ,CAAC;YAEf,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,QAAQ,CAAC;YAEvD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACvB,IAAI,cAAc,EAAE;oBAClB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;iBAClB;gBAED,iFAAiF;gBACjF,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;oBACrD,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;wBACjC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;qBAC1D;iBACF;aACF;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBACnC,2CAA2C;gBAC3C,IAAI,cAAc,EAAE;oBAClB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;iBAClB;gBAED,+CAA+C;gBAC/C,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;oBAC1D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;iBACjC;aACF;iBAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,cAAc,EAAE;gBAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aAClB;SACF;IACH,CAAC;CACF;AApgBD,wBAogBC"}
package/dist/nongo.d.ts CHANGED
@@ -18,6 +18,7 @@ export default class Nongo {
18
18
  db: Db;
19
19
  dbName: string;
20
20
  static REVISION: string;
21
+ static ENVIRONMENT_MAPPING: string;
21
22
  private instances;
22
23
  private instanceMap;
23
24
  private newGeneratorMap;
package/dist/nongo.js CHANGED
@@ -335,4 +335,5 @@ class Nongo {
335
335
  }
336
336
  exports.default = Nongo;
337
337
  Nongo.REVISION = "Revision";
338
+ Nongo.ENVIRONMENT_MAPPING = "EnvironmentMapping";
338
339
  //# sourceMappingURL=nongo.js.map
package/dist/nongo.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"nongo.js","sourceRoot":"","sources":["../src/nongo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nongo.js","sourceRoot":"","sources":["../src/nongo.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.2.1",
3
+ "version": "3.3.0",
4
4
  "description": "A promise driven, schema lead, mongo driver.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/model.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import clone from 'clone-deep';
2
2
  import {AggregateOptions, AnyBulkWriteOperation, BulkWriteOptions, BulkWriteResult, CountDocumentsOptions, Db, DeleteOptions, DeleteResult, Document, Filter, FindOptions, ObjectId, UpdateFilter, UpdateOptions, UpdateResult} from 'mongodb';
3
3
  import {diff} from 'just-diff';
4
+ import semverGt from 'semver/functions/gt';
5
+ import incVersion from 'semver/functions/inc';
4
6
 
5
7
  import CursorIterator from './cursor-iterator';
6
8
  import {CreateSearchIndex} from './interface';
@@ -24,7 +26,7 @@ export interface RevisionHistory {
24
26
  created?: Date;
25
27
  }
26
28
 
27
- export default abstract class Model<T extends {_id?: ObjectId, revision?: string, history?: RevisionHistory[], diffs?: any} = any> {
29
+ export default abstract class Model<T extends {_id?: ObjectId, revision?: string, history?: RevisionHistory[], diffs?: any, name?: string, environment?: string} = any> {
28
30
  // {@code instanceof} can be a bit funny when importing classes across
29
31
  // modules so this is an explicit type guard we can use
30
32
  public isNongoModel: true = true;
@@ -33,6 +35,7 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
33
35
  public name: string;
34
36
  public dynamic: boolean;
35
37
  private collectionRevision: string | null;
38
+ private collectionEnvironmentMapping: string | null;
36
39
 
37
40
  constructor(public nongo: Nongo, public obj: T) {
38
41
  // Set this.db if nongo given
@@ -46,8 +49,10 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
46
49
  }
47
50
 
48
51
  this.collection = this.defineCollection();
49
- this.collectionRevision =
52
+ this.collectionRevision = // e.g. BlockRevision
50
53
  this.schemaVersioningEnabled() ? `${this.defineCollection()}${Nongo.REVISION}` : null;
54
+ this.collectionEnvironmentMapping = // e.g. BlockEnvironmentMapping
55
+ this.schemaVersioningEnabled() ? `${this.defineCollection()}${Nongo.ENVIRONMENT_MAPPING}` : null;
51
56
  this.name = this.constructor.name;
52
57
  this.dynamic = false;
53
58
  this.initStructure();
@@ -78,6 +83,22 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
78
83
  return this.obj._id.toHexString();
79
84
  }
80
85
 
86
+ private async getLatestRevisionNumber(name: string): Promise<string> {
87
+ const liveObj = await this.db.collection(this.collection).findOne({name}, {sort:{revision: -1}});
88
+ const revObj = await this.db.collection(this.collectionRevision).findOne({name}, {sort:{revision: -1}});
89
+ let version = "0.0.1";
90
+ if (liveObj && revObj) {
91
+ semverGt(liveObj.revision, revObj.revision) ?
92
+ version = incVersion(liveObj.revision, 'patch') :
93
+ version = incVersion(revObj.revision, 'patch');
94
+ } else if (liveObj) {
95
+ version = incVersion(liveObj.revision, 'patch')
96
+ } else if (revObj) {
97
+ version = incVersion(revObj.revision, 'patch')
98
+ }
99
+ return version;
100
+ }
101
+
81
102
  /*
82
103
  * Upsert the model into the database
83
104
  */
@@ -97,29 +118,45 @@ export default abstract class Model<T extends {_id?: ObjectId, revision?: string
97
118
  this.throwValidationError(err);
98
119
  }
99
120
  }
100
-
101
- let revisionObj;
102
- const revisionObjId = new ObjectId();
121
+
103
122
  if (this.collectionRevision) {
104
- revisionObj = await this.db.collection(this.collection).findOne({_id: this.obj._id});
105
- this.obj.revision = Nongo.revisionNumber(revisionObj?.revision);
106
- this.obj.history = Nongo.revisionHistory(revisionObj, revisionObjId);
107
-
108
- // get diffs
109
- if (revisionObj) {
110
- delete this.obj.diffs;
111
- const diffs = diff(revisionObj, this.obj);
112
- this.obj.diffs = excludePathsFromDiff(diffs);
123
+ const query = ObjectId.isValid(this.obj.environment) ? {_id: new ObjectId(this.obj.environment)} : {isLive:true}
124
+ const clientEnv = await this.db.collection('Environment').findOne(query);
125
+ const revisionObjId = new ObjectId();
126
+
127
+ const {name} = this.obj;
128
+ this.obj.revision = await this.getLatestRevisionNumber(name);
129
+
130
+ if (clientEnv.isLive) {
131
+ const liveRevisionObject = await this.db.collection(this.collection).findOne({_id: this.obj._id});
132
+ this.obj.history = Nongo.revisionHistory(liveRevisionObject, revisionObjId);
133
+ await this.db
134
+ .collection(this.collection)
135
+ .replaceOne({_id: this.obj._id}, this.obj, {upsert: true});
136
+ if (liveRevisionObject) {
137
+ liveRevisionObject._id = revisionObjId;
138
+ await this.db.collection(this.collectionRevision).insertOne(liveRevisionObject);
139
+ }
140
+ } else {
141
+ const otherRevisionObject = await this.db.collection(this.collectionRevision).findOne({_id: this.obj._id});
142
+ if (otherRevisionObject) {
143
+ this.obj.history = Nongo.revisionHistory(otherRevisionObject, revisionObjId);
144
+ otherRevisionObject._id = revisionObjId;
145
+ await this.db.collection(this.collectionRevision).insertOne(otherRevisionObject);
146
+ }
147
+ await this.db.collection(this.collectionRevision).insertOne(this.obj);
113
148
  }
114
- }
115
- // Upsert
116
- const UpsertResult = await this.db
149
+ if (this.obj.revision === "0.0.1") {
150
+ await this.db.collection(this.collectionEnvironmentMapping).insertOne({
151
+ originalId: this.idString(),
152
+ environments: {[clientEnv._id.toHexString()]: this.idString()}
153
+ })
154
+ }
155
+ } else {
156
+ // Upsert
157
+ await this.db
117
158
  .collection(this.collection)
118
159
  .replaceOne({_id: this.obj._id}, this.obj, {upsert: true});
119
-
120
- if (UpsertResult.modifiedCount === 1 && this.collectionRevision) {
121
- revisionObj._id = revisionObjId;
122
- await this.db.collection(this.collectionRevision).insertOne(revisionObj);
123
160
  }
124
161
 
125
162
  // Return the saved model
package/src/nongo.ts CHANGED
@@ -59,6 +59,7 @@ export default class Nongo {
59
59
  public db: Db;
60
60
  public dbName: string;
61
61
  public static REVISION = "Revision";
62
+ public static ENVIRONMENT_MAPPING = "EnvironmentMapping";
62
63
 
63
64
  // Parallel to {@code this.modelClasses} and {@code this.schemaParsers}
64
65
  private instances: Model[];
@@ -0,0 +1,12 @@
1
+ // This file was generated using nongo-driver's TsInterfaceGenerator.
2
+ export default interface DummyModelChangedObj {
3
+ 'name': string;
4
+ 'pets': Array<{
5
+ 'species'?: string;
6
+ 'likes'?: {
7
+ 'food'?: string[];
8
+ 'drink'?: string[];
9
+ };
10
+ }>;
11
+ '_id'?: any;
12
+ }
@@ -0,0 +1,40 @@
1
+ // This file was generated using nongo-driver's TsInterfaceGenerator.
2
+ export default interface DummyModelObj {
3
+ 'dontStripChildren'?: any;
4
+ 'dontStripChildren2'?: any;
5
+ 'exampleMap'?: {[key: string]: {
6
+ 'mapValueField': string;
7
+ }};
8
+ 'created'?: Date;
9
+ 'arrayOfObject'?: object[];
10
+ 'name': string;
11
+ 'age': number;
12
+ 'pets': Array<{
13
+ 'species'?: string;
14
+ 'likes'?: {
15
+ 'food'?: string[];
16
+ 'drink'?: string[];
17
+ };
18
+ }>;
19
+ 'job': {
20
+ 'role': string;
21
+ 'at'?: string;
22
+ };
23
+ 'location'?: {
24
+ 'address1'?: string;
25
+ };
26
+ 'autoInit': {
27
+ 'initArray': Array<{
28
+ 'nestedObj': any;
29
+ }>;
30
+ 'initNestedObj'?: {
31
+ 'hello'?: string;
32
+ };
33
+ 'initNestedNative'?: any;
34
+ };
35
+ 'notEmptyFields'?: {
36
+ 'aString': string;
37
+ 'anArray': string[];
38
+ };
39
+ '_id'?: any;
40
+ }
@@ -0,0 +1,195 @@
1
+ // This file was generated using nongo-driver's TsInterfaceGenerator.
2
+ export default interface DummyModelWithMaxIndexObj {
3
+ 'clients'?: {
4
+ 'client1'?: {
5
+ 'favouritePet'?: string;
6
+ };
7
+ 'client2'?: {
8
+ 'favouritePet'?: string;
9
+ };
10
+ 'client3'?: {
11
+ 'favouritePet'?: string;
12
+ };
13
+ 'client4'?: {
14
+ 'favouritePet'?: string;
15
+ };
16
+ 'client5'?: {
17
+ 'favouritePet'?: string;
18
+ };
19
+ 'client6'?: {
20
+ 'favouritePet'?: string;
21
+ };
22
+ 'client7'?: {
23
+ 'favouritePet'?: string;
24
+ };
25
+ 'client8'?: {
26
+ 'favouritePet'?: string;
27
+ };
28
+ 'client9'?: {
29
+ 'favouritePet'?: string;
30
+ };
31
+ 'client10'?: {
32
+ 'favouritePet'?: string;
33
+ };
34
+ 'client11'?: {
35
+ 'favouritePet'?: string;
36
+ };
37
+ 'client12'?: {
38
+ 'favouritePet'?: string;
39
+ };
40
+ 'client13'?: {
41
+ 'favouritePet'?: string;
42
+ };
43
+ 'client14'?: {
44
+ 'favouritePet'?: string;
45
+ };
46
+ 'client15'?: {
47
+ 'favouritePet'?: string;
48
+ };
49
+ 'client16'?: {
50
+ 'favouritePet'?: string;
51
+ };
52
+ 'client17'?: {
53
+ 'favouritePet'?: string;
54
+ };
55
+ 'client18'?: {
56
+ 'favouritePet'?: string;
57
+ };
58
+ 'client19'?: {
59
+ 'favouritePet'?: string;
60
+ };
61
+ 'client20'?: {
62
+ 'favouritePet'?: string;
63
+ };
64
+ 'client21'?: {
65
+ 'favouritePet'?: string;
66
+ };
67
+ 'client22'?: {
68
+ 'favouritePet'?: string;
69
+ };
70
+ 'client23'?: {
71
+ 'favouritePet'?: string;
72
+ };
73
+ 'client24'?: {
74
+ 'favouritePet'?: string;
75
+ };
76
+ 'client25'?: {
77
+ 'favouritePet'?: string;
78
+ };
79
+ 'client26'?: {
80
+ 'favouritePet'?: string;
81
+ };
82
+ 'client27'?: {
83
+ 'favouritePet'?: string;
84
+ };
85
+ 'client28'?: {
86
+ 'favouritePet'?: string;
87
+ };
88
+ 'client29'?: {
89
+ 'favouritePet'?: string;
90
+ };
91
+ 'client30'?: {
92
+ 'favouritePet'?: string;
93
+ };
94
+ 'client31'?: {
95
+ 'favouritePet'?: string;
96
+ };
97
+ 'client32'?: {
98
+ 'favouritePet'?: string;
99
+ };
100
+ 'client33'?: {
101
+ 'favouritePet'?: string;
102
+ };
103
+ 'client34'?: {
104
+ 'favouritePet'?: string;
105
+ };
106
+ 'client35'?: {
107
+ 'favouritePet'?: string;
108
+ };
109
+ 'client36'?: {
110
+ 'favouritePet'?: string;
111
+ };
112
+ 'client37'?: {
113
+ 'favouritePet'?: string;
114
+ };
115
+ 'client38'?: {
116
+ 'favouritePet'?: string;
117
+ };
118
+ 'client39'?: {
119
+ 'favouritePet'?: string;
120
+ };
121
+ 'client40'?: {
122
+ 'favouritePet'?: string;
123
+ };
124
+ 'client41'?: {
125
+ 'favouritePet'?: string;
126
+ };
127
+ 'client42'?: {
128
+ 'favouritePet'?: string;
129
+ };
130
+ 'client43'?: {
131
+ 'favouritePet'?: string;
132
+ };
133
+ 'client44'?: {
134
+ 'favouritePet'?: string;
135
+ };
136
+ 'client45'?: {
137
+ 'favouritePet'?: string;
138
+ };
139
+ 'client46'?: {
140
+ 'favouritePet'?: string;
141
+ };
142
+ 'client47'?: {
143
+ 'favouritePet'?: string;
144
+ };
145
+ 'client48'?: {
146
+ 'favouritePet'?: string;
147
+ };
148
+ 'client49'?: {
149
+ 'favouritePet'?: string;
150
+ };
151
+ 'client50'?: {
152
+ 'favouritePet'?: string;
153
+ };
154
+ 'client51'?: {
155
+ 'favouritePet'?: string;
156
+ };
157
+ 'client52'?: {
158
+ 'favouritePet'?: string;
159
+ };
160
+ 'client53'?: {
161
+ 'favouritePet'?: string;
162
+ };
163
+ 'client54'?: {
164
+ 'favouritePet'?: string;
165
+ };
166
+ 'client55'?: {
167
+ 'favouritePet'?: string;
168
+ };
169
+ 'client56'?: {
170
+ 'favouritePet'?: string;
171
+ };
172
+ 'client57'?: {
173
+ 'favouritePet'?: string;
174
+ };
175
+ 'client58'?: {
176
+ 'favouritePet'?: string;
177
+ };
178
+ 'client59'?: {
179
+ 'favouritePet'?: string;
180
+ };
181
+ 'client60'?: {
182
+ 'favouritePet'?: string;
183
+ };
184
+ 'client61'?: {
185
+ 'favouritePet'?: string;
186
+ };
187
+ 'client62'?: {
188
+ 'favouritePet'?: string;
189
+ };
190
+ 'client63'?: {
191
+ 'favouritePet'?: string;
192
+ };
193
+ };
194
+ '_id'?: any;
195
+ }
@@ -0,0 +1,13 @@
1
+ // This file was generated using nongo-driver's TsInterfaceGenerator.
2
+ export default interface DummyModelWithRevisionObj {
3
+ 'revision'?: string;
4
+ 'history'?: Array<{
5
+ 'id'?: string;
6
+ 'revision'?: string;
7
+ 'created'?: Date;
8
+ }>;
9
+ 'created': Date;
10
+ 'name': string;
11
+ 'age'?: number;
12
+ '_id'?: any;
13
+ }
@@ -0,0 +1,12 @@
1
+ // This file was generated using nongo-driver's TsInterfaceGenerator.
2
+ export default interface TextIndexModelModifiedObj {
3
+ 'name'?: string;
4
+ 'module'?: string;
5
+ 'description'?: {
6
+ 'en'?: string;
7
+ 'cy'?: string;
8
+ 'es'?: string;
9
+ };
10
+ 'summary'?: string;
11
+ '_id'?: any;
12
+ }
@@ -0,0 +1,11 @@
1
+ // This file was generated using nongo-driver's TsInterfaceGenerator.
2
+ export default interface TextIndexModelObj {
3
+ 'name'?: string;
4
+ 'module'?: string;
5
+ 'description'?: {
6
+ 'en'?: string;
7
+ 'cy'?: string;
8
+ };
9
+ 'summary'?: string;
10
+ '_id'?: any;
11
+ }
@@ -0,0 +1,11 @@
1
+ // This file was generated using nongo-driver's TsInterfaceGenerator.
2
+ export default interface TextIndexModelTooLongObj {
3
+ 'name'?: string;
4
+ 'module'?: string;
5
+ 'description'?: {
6
+ 'en'?: string;
7
+ 'cy'?: string;
8
+ };
9
+ 'summary'?: string;
10
+ '_id'?: any;
11
+ }