@proteinjs/db 1.2.1 → 1.3.1

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.
Files changed (68) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/LICENSE +21 -0
  3. package/dist/generated/index.js +3 -3
  4. package/dist/generated/index.js.map +1 -1
  5. package/dist/index.d.ts +4 -3
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +4 -3
  8. package/dist/index.js.map +1 -1
  9. package/dist/src/Columns.d.ts.map +1 -1
  10. package/dist/src/Columns.js +2 -6
  11. package/dist/src/Columns.js.map +1 -1
  12. package/dist/src/Db.d.ts +3 -2
  13. package/dist/src/Db.d.ts.map +1 -1
  14. package/dist/src/Db.js +40 -17
  15. package/dist/src/Db.js.map +1 -1
  16. package/dist/src/TableWatcher.d.ts +31 -0
  17. package/dist/src/TableWatcher.d.ts.map +1 -0
  18. package/dist/src/TableWatcher.js +47 -0
  19. package/dist/src/TableWatcher.js.map +1 -0
  20. package/dist/src/TableWatcherRunner.d.ts +15 -0
  21. package/dist/src/TableWatcherRunner.d.ts.map +1 -0
  22. package/dist/src/TableWatcherRunner.js +275 -0
  23. package/dist/src/TableWatcherRunner.js.map +1 -0
  24. package/dist/src/reference/ReferenceArray.d.ts +4 -0
  25. package/dist/src/reference/ReferenceArray.d.ts.map +1 -1
  26. package/dist/src/reference/ReferenceArray.js +52 -8
  27. package/dist/src/reference/ReferenceArray.js.map +1 -1
  28. package/dist/test/ReferenceArray.test.d.ts +2 -0
  29. package/dist/test/ReferenceArray.test.d.ts.map +1 -0
  30. package/dist/test/ReferenceArray.test.js +132 -0
  31. package/dist/test/ReferenceArray.test.js.map +1 -0
  32. package/dist/test/ReferenceArraySerializer.test.d.ts +2 -0
  33. package/dist/test/ReferenceArraySerializer.test.d.ts.map +1 -0
  34. package/dist/test/ReferenceArraySerializer.test.js +40 -0
  35. package/dist/test/ReferenceArraySerializer.test.js.map +1 -0
  36. package/dist/test/reusable/ColumnTypesTests.d.ts +53 -0
  37. package/dist/test/reusable/ColumnTypesTests.d.ts.map +1 -0
  38. package/dist/test/{ColumnTypesTests.js → reusable/ColumnTypesTests.js} +4 -4
  39. package/dist/test/reusable/ColumnTypesTests.js.map +1 -0
  40. package/dist/test/reusable/CrudTests.d.ts +51 -0
  41. package/dist/test/reusable/CrudTests.d.ts.map +1 -0
  42. package/dist/test/{CrudTests.js → reusable/CrudTests.js} +4 -4
  43. package/dist/test/reusable/CrudTests.js.map +1 -0
  44. package/dist/test/{TableManagerTests.d.ts → reusable/TableManagerTests.d.ts} +2 -2
  45. package/dist/test/reusable/TableManagerTests.d.ts.map +1 -0
  46. package/dist/test/{TableManagerTests.js → reusable/TableManagerTests.js} +3 -3
  47. package/dist/test/reusable/TableManagerTests.js.map +1 -0
  48. package/generated/index.ts +16 -19
  49. package/index.ts +5 -3
  50. package/package.json +7 -5
  51. package/src/Columns.ts +1 -2
  52. package/src/Db.ts +22 -12
  53. package/src/TableWatcher.ts +77 -0
  54. package/src/TableWatcherRunner.ts +167 -0
  55. package/src/reference/ReferenceArray.ts +46 -4
  56. package/test/ReferenceArray.test.ts +93 -0
  57. package/test/ReferenceArraySerializer.test.ts +42 -0
  58. package/test/{ColumnTypesTests.ts → reusable/ColumnTypesTests.ts} +6 -6
  59. package/test/{CrudTests.ts → reusable/CrudTests.ts} +4 -4
  60. package/test/{TableManagerTests.ts → reusable/TableManagerTests.ts} +4 -4
  61. package/dist/test/ColumnTypesTests.d.ts +0 -53
  62. package/dist/test/ColumnTypesTests.d.ts.map +0 -1
  63. package/dist/test/ColumnTypesTests.js.map +0 -1
  64. package/dist/test/CrudTests.d.ts +0 -51
  65. package/dist/test/CrudTests.d.ts.map +0 -1
  66. package/dist/test/CrudTests.js.map +0 -1
  67. package/dist/test/TableManagerTests.d.ts.map +0 -1
  68. package/dist/test/TableManagerTests.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Db.d.ts","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
package/dist/src/Db.js CHANGED
@@ -48,6 +48,7 @@ var QueryBuilderFactory_1 = require("./QueryBuilderFactory");
48
48
  var StatementConfigFactory_1 = require("./StatementConfigFactory");
49
49
  var TableAuth_1 = require("./auth/TableAuth");
50
50
  var TableServiceAuth_1 = require("./auth/TableServiceAuth");
51
+ var TableWatcherRunner_1 = require("./TableWatcherRunner");
51
52
  var getDb = function () {
52
53
  return typeof self === 'undefined' ? new Db() : (0, DbService_1.getDbService)();
53
54
  };
@@ -60,6 +61,7 @@ var Db = /** @class */ (function () {
60
61
  this.runAsSystem = runAsSystem;
61
62
  this.logger = new util_1.Logger(this.constructor.name);
62
63
  this.auth = new TableAuth_1.TableAuth();
64
+ this.tableWatcherRunner = new TableWatcherRunner_1.TableWatcherRunner();
63
65
  this.serviceMetadata = {
64
66
  auth: {
65
67
  canAccess: function (methodName, args) { return new TableServiceAuth_1.TableServiceAuth().canAccess(methodName, args); },
@@ -130,15 +132,21 @@ var Db = /** @class */ (function () {
130
132
  return [4 /*yield*/, this.addDefaultFieldValues(table, recordCopy)];
131
133
  case 1:
132
134
  _a.sent();
135
+ return [4 /*yield*/, this.tableWatcherRunner.runBeforeInsertTableWatchers(table, recordCopy)];
136
+ case 2:
137
+ recordCopy = _a.sent();
133
138
  recordSearializer = new Record_1.RecordSerializer(table);
134
139
  return [4 /*yield*/, recordSearializer.serialize(recordCopy)];
135
- case 2:
140
+ case 3:
136
141
  serializedRecord = _a.sent();
137
142
  generateInsert = function (config) {
138
143
  return new db_query_1.StatementFactory().insert(table.name, serializedRecord, _this.statementConfigFactory.getStatementConfig(config));
139
144
  };
140
145
  return [4 /*yield*/, this.dbDriver.runDml(generateInsert)];
141
- case 3:
146
+ case 4:
147
+ _a.sent();
148
+ return [4 /*yield*/, this.tableWatcherRunner.runAfterInsertTableWatchers(table, recordCopy)];
149
+ case 5:
142
150
  _a.sent();
143
151
  return [2 /*return*/, recordCopy];
144
152
  }
@@ -181,7 +189,7 @@ var Db = /** @class */ (function () {
181
189
  };
182
190
  Db.prototype.update = function (table, record, query) {
183
191
  return __awaiter(this, void 0, void 0, function () {
184
- var recordCopy, recordSearializer, serializedRecord, qb, generateUpdate;
192
+ var recordCopy, qb, recordSearializer, serializedRecord, generateUpdate, recordUpdateCount;
185
193
  var _this = this;
186
194
  return __generator(this, function (_a) {
187
195
  switch (_a.label) {
@@ -196,21 +204,29 @@ var Db = /** @class */ (function () {
196
204
  return [4 /*yield*/, this.addUpdateFieldValues(table, recordCopy)];
197
205
  case 1:
198
206
  _a.sent();
199
- recordSearializer = new Record_1.RecordSerializer(table);
200
- return [4 /*yield*/, recordSearializer.serialize(recordCopy)];
201
- case 2:
202
- serializedRecord = _a.sent();
203
207
  qb = new QueryBuilderFactory_1.QueryBuilderFactory().getQueryBuilder(table, query);
204
208
  this.addColumnQueries(table, qb);
205
209
  if (!query) {
206
210
  qb.condition({ field: 'id', operator: '=', value: recordCopy.id });
207
211
  }
212
+ return [4 /*yield*/, this.tableWatcherRunner.runBeforeUpdateTableWatchers(table, recordCopy, qb)];
213
+ case 2:
214
+ recordCopy = _a.sent();
215
+ recordSearializer = new Record_1.RecordSerializer(table);
216
+ return [4 /*yield*/, recordSearializer.serialize(recordCopy)];
217
+ case 3:
218
+ serializedRecord = _a.sent();
208
219
  delete serializedRecord['id'];
209
220
  generateUpdate = function (config) {
210
221
  return new db_query_1.StatementFactory().update(table.name, serializedRecord, qb, _this.statementConfigFactory.getStatementConfig(config));
211
222
  };
212
223
  return [4 /*yield*/, this.dbDriver.runDml(generateUpdate)];
213
- case 3: return [2 /*return*/, _a.sent()];
224
+ case 4:
225
+ recordUpdateCount = _a.sent();
226
+ return [4 /*yield*/, this.tableWatcherRunner.runAfterUpdateTableWatchers(table, recordUpdateCount, recordCopy, qb)];
227
+ case 5:
228
+ _a.sent();
229
+ return [2 /*return*/, recordUpdateCount];
214
230
  }
215
231
  });
216
232
  });
@@ -251,7 +267,7 @@ var Db = /** @class */ (function () {
251
267
  };
252
268
  Db.prototype.delete = function (table, query) {
253
269
  return __awaiter(this, void 0, void 0, function () {
254
- var recordsToDelete, recordsToDeleteIds, deleteQb, generateDelete, deletedRowCount;
270
+ var qb, recordsToDelete, recordsToDeleteIds, deleteQb, generateDelete, recordDeleteCount;
255
271
  var _this = this;
256
272
  return __generator(this, function (_a) {
257
273
  switch (_a.label) {
@@ -259,7 +275,8 @@ var Db = /** @class */ (function () {
259
275
  if (!this.runAsSystem) {
260
276
  this.auth.canDelete(table);
261
277
  }
262
- return [4 /*yield*/, this.query(table, query)];
278
+ qb = new QueryBuilderFactory_1.QueryBuilderFactory().getQueryBuilder(table, query);
279
+ return [4 /*yield*/, this.query(table, qb)];
263
280
  case 1:
264
281
  recordsToDelete = _a.sent();
265
282
  if (recordsToDelete.length == 0) {
@@ -271,21 +288,27 @@ var Db = /** @class */ (function () {
271
288
  generateDelete = function (config) {
272
289
  return new db_query_1.StatementFactory().delete(table.name, deleteQb, _this.statementConfigFactory.getStatementConfig(config));
273
290
  };
274
- return [4 /*yield*/, this.beforeDelete(table, recordsToDelete)];
291
+ return [4 /*yield*/, this.runColumnBeforeDeletes(table, recordsToDelete)];
275
292
  case 2:
276
293
  _a.sent();
277
- return [4 /*yield*/, this.dbDriver.runDml(generateDelete)];
294
+ return [4 /*yield*/, this.tableWatcherRunner.runBeforeDeleteTableWatchers(table, recordsToDelete, qb)];
278
295
  case 3:
279
- deletedRowCount = _a.sent();
280
- return [4 /*yield*/, this.cascadeDeletions(table, recordsToDeleteIds)];
296
+ _a.sent();
297
+ return [4 /*yield*/, this.dbDriver.runDml(generateDelete)];
281
298
  case 4:
299
+ recordDeleteCount = _a.sent();
300
+ return [4 /*yield*/, this.runCascadeDeletions(table, recordsToDeleteIds)];
301
+ case 5:
302
+ _a.sent();
303
+ return [4 /*yield*/, this.tableWatcherRunner.runAfterDeleteTableWatchers(table, recordDeleteCount, recordsToDelete, qb)];
304
+ case 6:
282
305
  _a.sent();
283
- return [2 /*return*/, deletedRowCount];
306
+ return [2 /*return*/, recordDeleteCount];
284
307
  }
285
308
  });
286
309
  });
287
310
  };
288
- Db.prototype.beforeDelete = function (table, recordsToDelete) {
311
+ Db.prototype.runColumnBeforeDeletes = function (table, recordsToDelete) {
289
312
  return __awaiter(this, void 0, void 0, function () {
290
313
  var _a, _b, _c, _i, columnPropertyName, column;
291
314
  return __generator(this, function (_d) {
@@ -316,7 +339,7 @@ var Db = /** @class */ (function () {
316
339
  });
317
340
  });
318
341
  };
319
- Db.prototype.cascadeDeletions = function (table, deletedRecordIds) {
342
+ Db.prototype.runCascadeDeletions = function (table, deletedRecordIds) {
320
343
  return __awaiter(this, void 0, void 0, function () {
321
344
  var _i, _a, cascadeDeleteReference, referenceTable, referenceColumnPropertyName, cascadeDeleteQb, deleteCount;
322
345
  return __generator(this, function (_b) {
@@ -1 +1 @@
1
- {"version":3,"file":"Db.js","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAsE;AAEtE,oDAAmE;AACnE,iCAA4E;AAC5E,mCAAsE;AACtE,wCAAyC;AACzC,kEAAiE;AACjE,gDAAwG;AACxG,6DAA4D;AAC5D,mEAAkE;AAElE,8CAA6C;AAC7C,4DAA2D;AAEpD,IAAM,KAAK,GAAG;IACnB,OAAA,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,EAAK,CAAC,CAAC,CAAE,IAAA,wBAAY,GAAY;AAArE,CAAqE,CAAC;AAD3D,QAAA,KAAK,SACsD;AACjE,IAAM,aAAa,GAAG,cAAiC,OAAA,IAAI,EAAE,CAAI,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAArC,CAAqC,CAAC;AAAvF,QAAA,aAAa,iBAA0E;AA2BpG;IAYE,YACE,QAAmB,EACnB,QAA4C,EACpC,WAA4B;QAA5B,4BAAA,EAAA,mBAA4B;QAA5B,gBAAW,GAAX,WAAW,CAAiB;QAZ9B,WAAM,GAAG,IAAI,aAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE3C,SAAI,GAAG,IAAI,qBAAS,EAAE,CAAC;QACxB,oBAAe,GAA+B;YACnD,IAAI,EAAE;gBACJ,SAAS,EAAE,UAAC,UAAU,EAAE,IAAI,IAAK,OAAA,IAAI,mCAAgB,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,EAAlD,CAAkD;aACpF;SACF,CAAC;QAOA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChE,IAAI,CAAC,sBAAsB,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChG,CAAC;IAEO,+BAAkB,GAA1B;QACE,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE;YACvB,IAAM,sBAAsB,GAAG,6BAAgB,CAAC,GAAG,EAAE,CAAC,MAAM,CAC1D,sCAAsC,CACvC,CAAC;YACF,IAAI,CAAC,sBAAsB,EAAE;gBAC3B,MAAM,IAAI,KAAK,CACb,6JAA6J,CAC9J,CAAC;aACH;YAED,EAAE,CAAC,eAAe,GAAG,sBAAsB,CAAC,WAAW,EAAE,CAAC;SAC3D;QAED,OAAO,EAAE,CAAC,eAAe,CAAC;IAC5B,CAAC;IAEK,iBAAI,GAAV;;;;4BACE,qBAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,EAAA;;wBAAzC,SAAyC,CAAC;wBAC1C,qBAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,UAAU,EAAE,EAAA;;wBAAlD,SAAkD,CAAC;wBACnD,qBAAM,IAAI,uCAAkB,EAAE,CAAC,IAAI,EAAE,EAAA;;wBAArC,SAAqC,CAAC;;;;;KACvC;IAEK,wBAAW,GAAjB,UAA+B,KAAe;;;;4BACrC,qBAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAA;4BAA/D,sBAAO,SAAwD,EAAC;;;;KACjE;IAEK,gBAAG,GAAT,UAAuB,KAAe,EAAE,KAAe;;;;4BAC7C,qBAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAA;4BAAtC,sBAAO,CAAC,SAA8B,CAAC,CAAC,CAAC,CAAC,EAAC;;;;KAC5C;IAEK,mBAAM,GAAZ,UAA0B,KAAe,EAAE,MAAwB;;;;;;;wBACjE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;4BACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;yBAC5B;wBAEK,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;wBAC7C,qBAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAA;;wBAAnD,SAAmD,CAAC;wBAC9C,iBAAiB,GAAG,IAAI,yBAAgB,CAAC,KAAK,CAAC,CAAC;wBAC7B,qBAAM,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,EAAA;;wBAAhE,gBAAgB,GAAG,SAA6C;wBAChE,cAAc,GAAG,UAAC,MAAkC;4BACxD,OAAA,IAAI,2BAAgB,EAAK,CAAC,MAAM,CAC9B,KAAK,CAAC,IAAI,EACV,gBAA8B,EAC9B,KAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CACvD;wBAJD,CAIC,CAAC;wBACJ,qBAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,EAAA;;wBAA1C,SAA0C,CAAC;wBAC3C,sBAAO,UAAe,EAAC;;;;KACxB;IAEa,kCAAqB,GAAnC,UAAiD,KAAe,EAAE,MAAW;;;;;;;6BAC1C,KAAK,CAAC,OAAO;;;;;;;;;;;wBACtC,MAAM,GAAI,KAAK,CAAC,OAAe,CAAC,kBAAkB,CAAqB,CAAC;6BAC1E,CAAA,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,YAAY,KAAI,OAAO,MAAM,CAAC,kBAAkB,CAAC,KAAK,WAAW,CAAA,EAAjF,wBAAiF;wBACnF,KAAA,MAAM,CAAA;wBAAC,KAAA,kBAAkB,CAAA;wBAAI,qBAAM,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAA;;wBAAtE,MAA0B,GAAG,SAAyC,CAAC;;;;;;;;;KAG5E;IAEK,mBAAM,GAAZ,UAA0B,KAAe,EAAE,MAAkB,EAAE,KAAgB;;;;;;;wBAC7E,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;4BACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;yBAC5B;wBAED,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;4BACxB,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;yBAC9F;wBAEK,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;wBAC7C,qBAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,EAAA;;wBAAlD,SAAkD,CAAC;wBAC7C,iBAAiB,GAAG,IAAI,yBAAgB,CAAI,KAAK,CAAC,CAAC;wBAChC,qBAAM,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,EAAA;;wBAAhE,gBAAgB,GAAG,SAA6C;wBAChE,EAAE,GAAG,IAAI,yCAAmB,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBACnE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACjC,IAAI,CAAC,KAAK,EAAE;4BACV,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,EAAgB,EAAE,CAAC,CAAC;yBAClF;wBAED,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;wBACxB,cAAc,GAAG,UAAC,MAAkC;4BACxD,OAAA,IAAI,2BAAgB,EAAK,CAAC,MAAM,CAC9B,KAAK,CAAC,IAAI,EACV,gBAA8B,EAC9B,EAAE,EACF,KAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CACvD;wBALD,CAKC,CAAC;wBACG,qBAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,EAAA;4BAAjD,sBAAO,SAA0C,EAAC;;;;KACnD;IAEa,iCAAoB,GAAlC,UAAgD,KAAe,EAAE,MAAW;;;;;;;6BACzC,KAAK,CAAC,OAAO;;;;;;;;;;;wBACtC,MAAM,GAAI,KAAK,CAAC,OAAe,CAAC,kBAAkB,CAAqB,CAAC;6BAC1E,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,WAAW,CAAA,EAA3B,wBAA2B;wBAC7B,KAAA,MAAM,CAAA;wBAAC,KAAA,kBAAkB,CAAA;wBAAI,qBAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAA;;wBAArE,MAA0B,GAAG,SAAwC,CAAC;;;;;;;;;KAG3E;IAEK,mBAAM,GAAZ,UAA0B,KAAe,EAAE,KAAe;;;;;;;wBACxD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;4BACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;yBAC5B;wBAEuB,qBAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAA;;wBAAhD,eAAe,GAAG,SAA8B;wBACtD,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE;4BAC/B,sBAAO,CAAC,EAAC;yBACV;wBAEK,kBAAkB,GAAG,eAAe,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,EAAE,EAAT,CAAS,CAAC,CAAC;wBAChE,QAAQ,GAAG,IAAI,yCAAmB,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBAClE,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,kBAAkC,EAAE,CAAC,CAAC;wBACzF,cAAc,GAAG,UAAC,MAAkC;4BACxD,OAAA,IAAI,2BAAgB,EAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;wBAA9G,CAA8G,CAAC;wBACjH,qBAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,EAAA;;wBAA/C,SAA+C,CAAC;wBACxB,qBAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,EAAA;;wBAA5D,eAAe,GAAG,SAA0C;wBAClE,qBAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAA;;wBAAtD,SAAsD,CAAC;wBACvD,sBAAO,eAAe,EAAC;;;;KACxB;IAEa,yBAAY,GAA1B,UAA2B,KAAiB,EAAE,eAAyB;;;;;;6BACpC,KAAK,CAAC,OAAO;;;;;;;;;;;wBACtC,MAAM,GAAI,KAAK,CAAC,OAAe,CAAC,kBAAkB,CAAqB,CAAC;6BAC1E,CAAA,OAAO,MAAM,CAAC,YAAY,KAAK,WAAW,CAAA,EAA1C,wBAA0C;wBAC5C,qBAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAA;;wBAArE,SAAqE,CAAC;;;;;;;;;KAG3E;IAEa,6BAAgB,GAA9B,UAA+B,KAAiB,EAAE,gBAA0B;;;;;;wBAC1E,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC9C,sBAAO;yBACR;8BAEmE,EAA/B,KAAA,KAAK,CAAC,uBAAuB,EAAE;;;6BAA/B,CAAA,cAA+B,CAAA;wBAAzD,sBAAsB;wBACzB,cAAc,GAAG,IAAA,mBAAW,EAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;wBAC3D,2BAA2B,GAAG,IAAA,6BAAqB,EAAC,cAAc,EAAE,sBAAsB,CAAC,eAAe,CAAC,CAAC;wBAClH,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,8CAAuC,KAAK,CAAC,IAAI,+BAAqB,cAAc,CAAC,IAAI,4CAAkC,2BAA2B,iCAAuB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAE,CAChN,CAAC;wBACI,eAAe,GAAG,IAAI,yCAAmB,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;wBAClF,eAAe,CAAC,SAAS,CAAC;4BACxB,KAAK,EAAE,2BAAqC;4BAC5C,QAAQ,EAAE,IAAI;4BACd,KAAK,EAAE,gBAAgB;yBACxB,CAAC,CAAC;wBACiB,qBAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,EAAA;;wBAAhE,WAAW,GAAG,SAAkD;wBACtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAAmB,WAAW,oBAAU,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAE,CAAC,CAAC;;;wBAbrD,IAA+B,CAAA;;;;;;KAerE;IAEK,kBAAK,GAAX,UAAyB,KAAe,EAAE,KAAe;;;;;;;wBACvD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;4BACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;yBAC3B;wBAEK,EAAE,GAAG,IAAI,yCAAmB,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBACnE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC3B,aAAa,GAAG,UAAC,MAAoC;4BACzD,OAAA,EAAE,CAAC,KAAK,CAAC,KAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;wBAAhE,CAAgE,CAAC;wBACzC,qBAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAA;;wBAA/D,iBAAiB,GAAG,SAA2C;wBAC/D,iBAAiB,GAAG,IAAI,yBAAgB,CAAC,KAAK,CAAC,CAAC;wBAC/C,qBAAM,OAAO,CAAC,GAAG,CACtB,iBAAiB,CAAC,GAAG,CAAC,UAAO,gBAAgB;gCAAK,sBAAA,iBAAiB,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAA;qCAAA,CAAC,CACnG,EAAA;4BAFD,sBAAO,SAEN,EAAC;;;;KACH;IAEK,wBAAW,GAAjB,UAA+B,KAAe,EAAE,KAAgB;;;;;;;wBAC9D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;4BACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;yBAC3B;wBAEK,EAAE,GAAG,IAAI,yCAAmB,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBACnE,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;wBACzD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC3B,aAAa,GAAG,UAAC,MAAoC;4BACzD,OAAA,EAAE,CAAC,KAAK,CAAC,KAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;wBAAhE,CAAgE,CAAC;wBACpD,qBAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAA;;wBAApD,MAAM,GAAG,SAA2C;wBAC1D,sBAAO,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC;;;;KAC3B;IAEa,6BAAgB,GAA9B,UAA4C,KAAe,EAAE,EAAmB;;;;;gBAC9E,KAAW,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAAE;oBACxC,MAAM,GAAI,KAAK,CAAC,OAAe,CAAC,kBAAkB,CAAqB,CAAC;oBAC9E,IAAI,MAAA,MAAM,CAAC,OAAO,0CAAE,UAAU,EAAE;wBAC9B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;qBACjD;iBACF;;;;KACF;IACH,SAAC;AAAD,CAAC,AAjND,IAiNC;AAjNY,gBAAE"}
1
+ {"version":3,"file":"Db.js","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { Loadable } from '@proteinjs/reflection';
2
+ import { QueryBuilder } from '@proteinjs/db-query';
3
+ import { Record } from './Record';
4
+ import { Table } from './Table';
5
+ type RequiredProps<T, K extends keyof T> = Omit<T, K> & {
6
+ [P in K]-?: T[P];
7
+ };
8
+ export type TableWatcherMap<R extends Record = any> = {
9
+ [tableName: string]: {
10
+ beforeInsert: RequiredProps<TableWatcher<R>, 'beforeInsert'>[];
11
+ afterInsert: RequiredProps<TableWatcher<R>, 'afterInsert'>[];
12
+ beforeUpdate: RequiredProps<TableWatcher<R>, 'beforeUpdate'>[];
13
+ afterUpdate: RequiredProps<TableWatcher<R>, 'afterUpdate'>[];
14
+ beforeDelete: RequiredProps<TableWatcher<R>, 'beforeDelete'>[];
15
+ afterDelete: RequiredProps<TableWatcher<R>, 'afterDelete'>[];
16
+ };
17
+ };
18
+ export declare const getTableWatcherMap: <R extends Record = any>() => TableWatcherMap<R>;
19
+ export declare const getTableWatchers: <R extends Record = any>() => TableWatcher<R>[];
20
+ export interface TableWatcher<R extends Record = Record> extends Loadable {
21
+ name(): string;
22
+ table(): Table<R>;
23
+ beforeInsert?<T extends R>(record: Omit<T, keyof R>): Promise<Omit<T, keyof R>>;
24
+ afterInsert?<T extends R>(record: T): Promise<void>;
25
+ beforeUpdate?<T extends R>(record: Partial<T>, qb: QueryBuilder<T>): Promise<Partial<T>>;
26
+ afterUpdate?<T extends R>(recordUpdateCount: number, record: Partial<T>, qb: QueryBuilder<T>): Promise<void>;
27
+ beforeDelete?<T extends R>(recordsToDelete: T[], qb: QueryBuilder<T>): Promise<void>;
28
+ afterDelete?<T extends R>(recordDeleteCount: number, deletedRecords: T[], qb: QueryBuilder<T>): Promise<void>;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=TableWatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableWatcher.d.ts","sourceRoot":"","sources":["../../src/TableWatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;KACrD,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,IAAI;IACpD,CAAC,SAAS,EAAE,MAAM,GAAG;QACnB,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC;QAC/D,WAAW,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC;QAC7D,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC;QAC/D,WAAW,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC;QAC7D,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC;QAC/D,WAAW,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC;KAC9D,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,kBAAkB,kDA0C9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,iDACkD,CAAC;AAEhF,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,QAAQ;IACvE,IAAI,IAAI,MAAM,CAAC;IACf,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAChF,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7G,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/G"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTableWatchers = exports.getTableWatcherMap = void 0;
4
+ var reflection_1 = require("@proteinjs/reflection");
5
+ var getTableWatcherMap = function () {
6
+ var tableWatcherMap = {};
7
+ var tableWatchers = (0, exports.getTableWatchers)();
8
+ for (var _i = 0, tableWatchers_1 = tableWatchers; _i < tableWatchers_1.length; _i++) {
9
+ var tableWatcher = tableWatchers_1[_i];
10
+ if (!tableWatcherMap[tableWatcher.table().name]) {
11
+ tableWatcherMap[tableWatcher.table().name] = {
12
+ beforeInsert: [],
13
+ afterInsert: [],
14
+ beforeUpdate: [],
15
+ afterUpdate: [],
16
+ beforeDelete: [],
17
+ afterDelete: [],
18
+ };
19
+ }
20
+ var mapping = tableWatcherMap[tableWatcher.table().name];
21
+ if (tableWatcher.beforeInsert) {
22
+ mapping.beforeInsert.push(tableWatcher);
23
+ }
24
+ if (tableWatcher.afterInsert) {
25
+ mapping.afterInsert.push(tableWatcher);
26
+ }
27
+ if (tableWatcher.beforeUpdate) {
28
+ mapping.beforeUpdate.push(tableWatcher);
29
+ }
30
+ if (tableWatcher.afterUpdate) {
31
+ mapping.afterUpdate.push(tableWatcher);
32
+ }
33
+ if (tableWatcher.beforeDelete) {
34
+ mapping.beforeDelete.push(tableWatcher);
35
+ }
36
+ if (tableWatcher.afterDelete) {
37
+ mapping.afterDelete.push(tableWatcher);
38
+ }
39
+ }
40
+ return tableWatcherMap;
41
+ };
42
+ exports.getTableWatcherMap = getTableWatcherMap;
43
+ var getTableWatchers = function () {
44
+ return reflection_1.SourceRepository.get().objects('@proteinjs/db/TableWatcher');
45
+ };
46
+ exports.getTableWatchers = getTableWatchers;
47
+ //# sourceMappingURL=TableWatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableWatcher.js","sourceRoot":"","sources":["../../src/TableWatcher.ts"],"names":[],"mappings":";;;AAAA,oDAAmE;AAoB5D,IAAM,kBAAkB,GAAG;IAChC,IAAM,eAAe,GAAuB,EAAE,CAAC;IAC/C,IAAM,aAAa,GAAG,IAAA,wBAAgB,GAAE,CAAC;IACzC,KAA2B,UAAa,EAAb,+BAAa,EAAb,2BAAa,EAAb,IAAa,EAAE;QAArC,IAAM,YAAY,sBAAA;QACrB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE;YAC/C,eAAe,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG;gBAC3C,YAAY,EAAE,EAAE;gBAChB,WAAW,EAAE,EAAE;gBACf,YAAY,EAAE,EAAE;gBAChB,WAAW,EAAE,EAAE;gBACf,YAAY,EAAE,EAAE;gBAChB,WAAW,EAAE,EAAE;aAChB,CAAC;SACH;QAED,IAAM,OAAO,GAAG,eAAe,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,YAAY,CAAC,YAAY,EAAE;YAC7B,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,YAAmB,CAAC,CAAC;SAChD;QAED,IAAI,YAAY,CAAC,WAAW,EAAE;YAC5B,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,YAAmB,CAAC,CAAC;SAC/C;QAED,IAAI,YAAY,CAAC,YAAY,EAAE;YAC7B,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,YAAmB,CAAC,CAAC;SAChD;QAED,IAAI,YAAY,CAAC,WAAW,EAAE;YAC5B,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,YAAmB,CAAC,CAAC;SAC/C;QAED,IAAI,YAAY,CAAC,YAAY,EAAE;YAC7B,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,YAAmB,CAAC,CAAC;SAChD;QAED,IAAI,YAAY,CAAC,WAAW,EAAE;YAC5B,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,YAAmB,CAAC,CAAC;SAC/C;KACF;IAED,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AA1CW,QAAA,kBAAkB,sBA0C7B;AAEK,IAAM,gBAAgB,GAAG;IAC9B,OAAA,6BAAgB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAkB,4BAA4B,CAAC;AAA7E,CAA6E,CAAC;AADnE,QAAA,gBAAgB,oBACmD"}
@@ -0,0 +1,15 @@
1
+ import { Record } from './Record';
2
+ import { Table } from './Table';
3
+ import { QueryBuilder } from '@proteinjs/db-query';
4
+ export declare class TableWatcherRunner<R extends Record = Record> {
5
+ private static tableWatcherMap;
6
+ private logger;
7
+ constructor();
8
+ runBeforeInsertTableWatchers<T extends R>(table: Table<T>, record: Omit<T, keyof R>): Promise<Omit<T, keyof R>>;
9
+ runAfterInsertTableWatchers<T extends R>(table: Table<T>, record: T): Promise<void>;
10
+ runBeforeUpdateTableWatchers<T extends R>(table: Table<T>, record: Partial<T>, qb: QueryBuilder<T>): Promise<Partial<T>>;
11
+ runAfterUpdateTableWatchers<T extends R>(table: Table<T>, recordUpdateCount: number, record: Partial<T>, qb: QueryBuilder<T>): Promise<void>;
12
+ runBeforeDeleteTableWatchers<T extends R>(table: Table<T>, recordsToDelete: T[], qb: QueryBuilder<T>): Promise<void>;
13
+ runAfterDeleteTableWatchers<T extends R>(table: Table<T>, recordDeleteCount: number, deletedRecords: T[], qb: QueryBuilder<T>): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=TableWatcherRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableWatcherRunner.d.ts","sourceRoot":"","sources":["../../src/TableWatcherRunner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,qBAAa,kBAAkB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACvD,OAAO,CAAC,MAAM,CAAC,eAAe,CAAkB;IAChD,OAAO,CAAC,MAAM,CAAqC;;IAQ7C,4BAA4B,CAAC,CAAC,SAAS,CAAC,EAC5C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GACvB,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAuBtB,2BAA2B,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnF,4BAA4B,CAAC,CAAC,SAAS,CAAC,EAC5C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAwBhB,2BAA2B,CAAC,CAAC,SAAS,CAAC,EAC3C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAClB,OAAO,CAAC,IAAI,CAAC;IAqBV,4BAA4B,CAAC,CAAC,SAAS,CAAC,EAC5C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,eAAe,EAAE,CAAC,EAAE,EACpB,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAClB,OAAO,CAAC,IAAI,CAAC;IAqBV,2BAA2B,CAAC,CAAC,SAAS,CAAC,EAC3C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,iBAAiB,EAAE,MAAM,EACzB,cAAc,EAAE,CAAC,EAAE,EACnB,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAClB,OAAO,CAAC,IAAI,CAAC;CAoBjB"}
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.TableWatcherRunner = void 0;
40
+ var util_1 = require("@proteinjs/util");
41
+ var TableWatcher_1 = require("./TableWatcher");
42
+ var db_query_1 = require("@proteinjs/db-query");
43
+ var TableWatcherRunner = /** @class */ (function () {
44
+ function TableWatcherRunner() {
45
+ this.logger = new util_1.Logger(this.constructor.name);
46
+ if (!TableWatcherRunner.tableWatcherMap) {
47
+ TableWatcherRunner.tableWatcherMap = (0, TableWatcher_1.getTableWatcherMap)();
48
+ }
49
+ }
50
+ TableWatcherRunner.prototype.runBeforeInsertTableWatchers = function (table, record) {
51
+ return __awaiter(this, void 0, void 0, function () {
52
+ var tableWatcherMap, tableWatchers, updatedRecord, _i, tableWatchers_1, tableWatcher;
53
+ return __generator(this, function (_a) {
54
+ switch (_a.label) {
55
+ case 0:
56
+ tableWatcherMap = TableWatcherRunner.tableWatcherMap[table.name];
57
+ if (!tableWatcherMap) {
58
+ return [2 /*return*/, record];
59
+ }
60
+ tableWatchers = tableWatcherMap.beforeInsert;
61
+ if (tableWatchers.length === 0) {
62
+ return [2 /*return*/, record];
63
+ }
64
+ this.logger.info("(".concat(table.name, ") Running before-insert table watchers"));
65
+ updatedRecord = record;
66
+ _i = 0, tableWatchers_1 = tableWatchers;
67
+ _a.label = 1;
68
+ case 1:
69
+ if (!(_i < tableWatchers_1.length)) return [3 /*break*/, 4];
70
+ tableWatcher = tableWatchers_1[_i];
71
+ this.logger.info("(".concat(table.name, ") Running ").concat(tableWatcher.name(), ".beforeInsert"));
72
+ return [4 /*yield*/, tableWatcher.beforeInsert(updatedRecord)];
73
+ case 2:
74
+ updatedRecord = _a.sent();
75
+ this.logger.info("(".concat(table.name, ") Finished running ").concat(tableWatcher.name(), ".beforeInsert"));
76
+ _a.label = 3;
77
+ case 3:
78
+ _i++;
79
+ return [3 /*break*/, 1];
80
+ case 4:
81
+ this.logger.info("(".concat(table.name, ") Finished running before-insert table watchers"));
82
+ return [2 /*return*/, updatedRecord];
83
+ }
84
+ });
85
+ });
86
+ };
87
+ TableWatcherRunner.prototype.runAfterInsertTableWatchers = function (table, record) {
88
+ return __awaiter(this, void 0, void 0, function () {
89
+ var tableWatcherMap, tableWatchers, _i, tableWatchers_2, tableWatcher;
90
+ return __generator(this, function (_a) {
91
+ switch (_a.label) {
92
+ case 0:
93
+ tableWatcherMap = TableWatcherRunner.tableWatcherMap[table.name];
94
+ if (!tableWatcherMap) {
95
+ return [2 /*return*/];
96
+ }
97
+ tableWatchers = tableWatcherMap.afterInsert;
98
+ if (tableWatchers.length === 0) {
99
+ return [2 /*return*/];
100
+ }
101
+ this.logger.info("(".concat(table.name, ") Running after-insert table watchers"));
102
+ _i = 0, tableWatchers_2 = tableWatchers;
103
+ _a.label = 1;
104
+ case 1:
105
+ if (!(_i < tableWatchers_2.length)) return [3 /*break*/, 4];
106
+ tableWatcher = tableWatchers_2[_i];
107
+ this.logger.info("(".concat(table.name, ") Running ").concat(tableWatcher.name(), ".afterInsert"));
108
+ return [4 /*yield*/, tableWatcher.afterInsert(record)];
109
+ case 2:
110
+ _a.sent();
111
+ this.logger.info("(".concat(table.name, ") Finished running ").concat(tableWatcher.name(), ".afterInsert"));
112
+ _a.label = 3;
113
+ case 3:
114
+ _i++;
115
+ return [3 /*break*/, 1];
116
+ case 4:
117
+ this.logger.info("(".concat(table.name, ") Finished running after-insert table watchers"));
118
+ return [2 /*return*/];
119
+ }
120
+ });
121
+ });
122
+ };
123
+ TableWatcherRunner.prototype.runBeforeUpdateTableWatchers = function (table, record, qb) {
124
+ return __awaiter(this, void 0, void 0, function () {
125
+ var tableWatcherMap, tableWatchers, qbCopy, updatedRecord, _i, tableWatchers_3, tableWatcher;
126
+ return __generator(this, function (_a) {
127
+ switch (_a.label) {
128
+ case 0:
129
+ tableWatcherMap = TableWatcherRunner.tableWatcherMap[table.name];
130
+ if (!tableWatcherMap) {
131
+ return [2 /*return*/, record];
132
+ }
133
+ tableWatchers = tableWatcherMap.beforeUpdate;
134
+ if (tableWatchers.length === 0) {
135
+ return [2 /*return*/, record];
136
+ }
137
+ this.logger.info("(".concat(table.name, ") Running before-update table watchers"));
138
+ qbCopy = db_query_1.QueryBuilder.fromQueryBuilder(qb, table.name);
139
+ updatedRecord = record;
140
+ _i = 0, tableWatchers_3 = tableWatchers;
141
+ _a.label = 1;
142
+ case 1:
143
+ if (!(_i < tableWatchers_3.length)) return [3 /*break*/, 4];
144
+ tableWatcher = tableWatchers_3[_i];
145
+ this.logger.info("(".concat(table.name, ") Running ").concat(tableWatcher.name(), ".beforeUpdate"));
146
+ return [4 /*yield*/, tableWatcher.beforeUpdate(updatedRecord, qbCopy)];
147
+ case 2:
148
+ updatedRecord = _a.sent();
149
+ this.logger.info("(".concat(table.name, ") Finished running ").concat(tableWatcher.name(), ".beforeUpdate"));
150
+ _a.label = 3;
151
+ case 3:
152
+ _i++;
153
+ return [3 /*break*/, 1];
154
+ case 4:
155
+ this.logger.info("(".concat(table.name, ") Finished running before-update table watchers"));
156
+ return [2 /*return*/, updatedRecord];
157
+ }
158
+ });
159
+ });
160
+ };
161
+ TableWatcherRunner.prototype.runAfterUpdateTableWatchers = function (table, recordUpdateCount, record, qb) {
162
+ return __awaiter(this, void 0, void 0, function () {
163
+ var tableWatcherMap, tableWatchers, qbCopy, _i, tableWatchers_4, tableWatcher;
164
+ return __generator(this, function (_a) {
165
+ switch (_a.label) {
166
+ case 0:
167
+ tableWatcherMap = TableWatcherRunner.tableWatcherMap[table.name];
168
+ if (!tableWatcherMap) {
169
+ return [2 /*return*/];
170
+ }
171
+ tableWatchers = tableWatcherMap.afterUpdate;
172
+ if (tableWatchers.length === 0) {
173
+ return [2 /*return*/];
174
+ }
175
+ this.logger.info("(".concat(table.name, ") Running after-update table watchers"));
176
+ qbCopy = db_query_1.QueryBuilder.fromQueryBuilder(qb, table.name);
177
+ _i = 0, tableWatchers_4 = tableWatchers;
178
+ _a.label = 1;
179
+ case 1:
180
+ if (!(_i < tableWatchers_4.length)) return [3 /*break*/, 4];
181
+ tableWatcher = tableWatchers_4[_i];
182
+ this.logger.info("(".concat(table.name, ") Running ").concat(tableWatcher.name(), ".afterUpdate"));
183
+ return [4 /*yield*/, tableWatcher.afterUpdate(recordUpdateCount, record, qbCopy)];
184
+ case 2:
185
+ _a.sent();
186
+ this.logger.info("(".concat(table.name, ") Finished running ").concat(tableWatcher.name(), ".afterUpdate"));
187
+ _a.label = 3;
188
+ case 3:
189
+ _i++;
190
+ return [3 /*break*/, 1];
191
+ case 4:
192
+ this.logger.info("(".concat(table.name, ") Finished running after-update table watchers"));
193
+ return [2 /*return*/];
194
+ }
195
+ });
196
+ });
197
+ };
198
+ TableWatcherRunner.prototype.runBeforeDeleteTableWatchers = function (table, recordsToDelete, qb) {
199
+ return __awaiter(this, void 0, void 0, function () {
200
+ var tableWatcherMap, tableWatchers, qbCopy, _i, tableWatchers_5, tableWatcher;
201
+ return __generator(this, function (_a) {
202
+ switch (_a.label) {
203
+ case 0:
204
+ tableWatcherMap = TableWatcherRunner.tableWatcherMap[table.name];
205
+ if (!tableWatcherMap) {
206
+ return [2 /*return*/];
207
+ }
208
+ tableWatchers = tableWatcherMap.beforeDelete;
209
+ if (tableWatchers.length === 0) {
210
+ return [2 /*return*/];
211
+ }
212
+ this.logger.info("(".concat(table.name, ") Running before-delete table watchers"));
213
+ qbCopy = db_query_1.QueryBuilder.fromQueryBuilder(qb, table.name);
214
+ _i = 0, tableWatchers_5 = tableWatchers;
215
+ _a.label = 1;
216
+ case 1:
217
+ if (!(_i < tableWatchers_5.length)) return [3 /*break*/, 4];
218
+ tableWatcher = tableWatchers_5[_i];
219
+ this.logger.info("(".concat(table.name, ") Running ").concat(tableWatcher.name(), ".beforeDelete"));
220
+ return [4 /*yield*/, tableWatcher.beforeDelete(recordsToDelete, qbCopy)];
221
+ case 2:
222
+ _a.sent();
223
+ this.logger.info("(".concat(table.name, ") Finished running ").concat(tableWatcher.name(), ".beforeDelete"));
224
+ _a.label = 3;
225
+ case 3:
226
+ _i++;
227
+ return [3 /*break*/, 1];
228
+ case 4:
229
+ this.logger.info("(".concat(table.name, ") Finished running before-delete table watchers"));
230
+ return [2 /*return*/];
231
+ }
232
+ });
233
+ });
234
+ };
235
+ TableWatcherRunner.prototype.runAfterDeleteTableWatchers = function (table, recordDeleteCount, deletedRecords, qb) {
236
+ return __awaiter(this, void 0, void 0, function () {
237
+ var tableWatcherMap, tableWatchers, qbCopy, _i, tableWatchers_6, tableWatcher;
238
+ return __generator(this, function (_a) {
239
+ switch (_a.label) {
240
+ case 0:
241
+ tableWatcherMap = TableWatcherRunner.tableWatcherMap[table.name];
242
+ if (!tableWatcherMap) {
243
+ return [2 /*return*/];
244
+ }
245
+ tableWatchers = tableWatcherMap.afterDelete;
246
+ if (tableWatchers.length === 0) {
247
+ return [2 /*return*/];
248
+ }
249
+ this.logger.info("(".concat(table.name, ") Running after-delete table watchers"));
250
+ qbCopy = db_query_1.QueryBuilder.fromQueryBuilder(qb, table.name);
251
+ _i = 0, tableWatchers_6 = tableWatchers;
252
+ _a.label = 1;
253
+ case 1:
254
+ if (!(_i < tableWatchers_6.length)) return [3 /*break*/, 4];
255
+ tableWatcher = tableWatchers_6[_i];
256
+ this.logger.info("(".concat(table.name, ") Running ").concat(tableWatcher.name(), ".afterDelete"));
257
+ return [4 /*yield*/, tableWatcher.afterDelete(recordDeleteCount, deletedRecords, qbCopy)];
258
+ case 2:
259
+ _a.sent();
260
+ this.logger.info("(".concat(table.name, ") Finished running ").concat(tableWatcher.name(), ".afterDelete"));
261
+ _a.label = 3;
262
+ case 3:
263
+ _i++;
264
+ return [3 /*break*/, 1];
265
+ case 4:
266
+ this.logger.info("(".concat(table.name, ") Finished running after-delete table watchers"));
267
+ return [2 /*return*/];
268
+ }
269
+ });
270
+ });
271
+ };
272
+ return TableWatcherRunner;
273
+ }());
274
+ exports.TableWatcherRunner = TableWatcherRunner;
275
+ //# sourceMappingURL=TableWatcherRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableWatcherRunner.js","sourceRoot":"","sources":["../../src/TableWatcherRunner.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,10 @@ export declare class ReferenceArray<T extends Record> implements CustomSerializa
23
23
  static fromObjects<T extends Record>(table: string, objects: (T | (Partial<T> & {
24
24
  id: string;
25
25
  }))[]): ReferenceArray<T>;
26
+ /**
27
+ * Used to keep `_ids` in sync with `_objects`
28
+ */
29
+ private createProxy;
26
30
  get(): Promise<T[]>;
27
31
  set(objects: T[]): void;
28
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReferenceArray.d.ts","sourceRoot":"","sources":["../../../src/reference/ReferenceArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAKnC;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,wBAAwB;IAItE,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,MAAM,EAAE;IACd,QAAQ,CAAC;IALX,cAAc,SAA8B;gBAG1C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,CAAC,iBAAK;IAGvB,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,EAAE;IAK5F,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAiBzB,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE;CAGjB"}
1
+ {"version":3,"file":"ReferenceArray.d.ts","sourceRoot":"","sources":["../../../src/reference/ReferenceArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAKnC;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,wBAAwB;IAItE,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,MAAM,EAAE;IACd,QAAQ,CAAC;IALX,cAAc,SAA8B;gBAG1C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,CAAC,iBAAK;IAOvB,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,EAAE;IAKlG;;OAEG;IACH,OAAO,CAAC,WAAW;IAiCb,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAkBzB,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE;CAIjB"}