@proteinjs/db 1.7.0 → 1.9.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.
Files changed (46) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/generated/index.d.ts.map +1 -1
  3. package/dist/generated/index.js +3 -1
  4. package/dist/generated/index.js.map +1 -1
  5. package/dist/index.d.ts +5 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/src/Db.d.ts +30 -4
  10. package/dist/src/Db.d.ts.map +1 -1
  11. package/dist/src/Db.js +66 -75
  12. package/dist/src/Db.js.map +1 -1
  13. package/dist/src/Table.d.ts +4 -0
  14. package/dist/src/Table.d.ts.map +1 -1
  15. package/dist/src/Table.js +106 -1
  16. package/dist/src/Table.js.map +1 -1
  17. package/dist/src/services/TransactionRunnerService.d.ts +7 -0
  18. package/dist/src/services/TransactionRunnerService.d.ts.map +1 -0
  19. package/dist/src/services/TransactionRunnerService.js +6 -0
  20. package/dist/src/services/TransactionRunnerService.js.map +1 -0
  21. package/dist/src/transaction/Transaction.d.ts +69 -0
  22. package/dist/src/transaction/Transaction.d.ts.map +1 -0
  23. package/dist/src/transaction/Transaction.js +255 -0
  24. package/dist/src/transaction/Transaction.js.map +1 -0
  25. package/dist/src/transaction/TransactionRunner.d.ts +7 -0
  26. package/dist/src/transaction/TransactionRunner.d.ts.map +1 -0
  27. package/dist/src/transaction/TransactionRunner.js +88 -0
  28. package/dist/src/transaction/TransactionRunner.js.map +1 -0
  29. package/dist/test/TransactionDb.test.d.ts +2 -0
  30. package/dist/test/TransactionDb.test.d.ts.map +1 -0
  31. package/dist/test/TransactionDb.test.js +404 -0
  32. package/dist/test/TransactionDb.test.js.map +1 -0
  33. package/dist/test/reusable/TransactionTests.d.ts +52 -0
  34. package/dist/test/reusable/TransactionTests.d.ts.map +1 -0
  35. package/dist/test/reusable/TransactionTests.js +396 -0
  36. package/dist/test/reusable/TransactionTests.js.map +1 -0
  37. package/generated/index.ts +3 -1
  38. package/index.ts +5 -2
  39. package/package.json +2 -2
  40. package/src/Db.ts +63 -28
  41. package/src/Table.ts +25 -0
  42. package/src/services/TransactionRunnerService.ts +10 -0
  43. package/src/transaction/Transaction.ts +186 -0
  44. package/src/transaction/TransactionRunner.ts +18 -0
  45. package/test/TransactionDb.test.ts +335 -0
  46. package/test/reusable/TransactionTests.ts +234 -0
@@ -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":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAEL,KAAK,EAKN,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,MAAM,EAAoB,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGtE,OAAO,EAAE,sBAAsB,EAAgB,SAAS,EAAoB,MAAM,qBAAqB,CAAC;AAGxG,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKrD,2DAA2D;AAC3D,eAAO,MAAM,KAAK,wCACqD,CAAC;AACxE,eAAO,MAAM,aAAa,wCAAyE,CAAC;AAEpG,MAAM,MAAM,4BAA4B,GAAG,sBAAsB,GAAG;IAClE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IACxE,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,KAAK,MAAM,CAAC;CAClG,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,sBAAsB,GAAG;IAChE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;CACzE,CAAC;AAEF,MAAM,WAAW,sBAAuB,SAAQ,QAAQ;IACtD,WAAW,IAAI,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,IAAI,MAAM,CAAC;IACpB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,eAAe,IAAI,YAAY,CAAC;IAChC,QAAQ,CACN,iBAAiB,EAAE,CAAC,MAAM,EAAE,4BAA4B,KAAK,SAAS,EACtE,WAAW,CAAC,EAAE,GAAG,GAChB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC/B,MAAM,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,SAAS,EAAE,WAAW,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjH,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACrE;AAED,qBAAa,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IAiB9D,OAAO,CAAC,WAAW;IAhBrB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAW;IACzC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAA+C;IAC7D,OAAO,CAAC,sBAAsB,CAAyB;IACvD,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,kBAAkB,CAAC,CAAM;IAC1B,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAIhD;gBAGA,QAAQ,CAAC,EAAE,QAAQ,EACnB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,KAAK,CAAC,GAAG,CAAC,EACpC,WAAW,GAAE,OAAe;IAMtC,OAAO,CAAC,kBAAkB;IAiBpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrB,WAAW,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3D,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI9D,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAqB1E,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAiC3F,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;YAwB9D,sBAAsB;YAStB,mBAAmB;IA8B3B,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAgBlE,WAAW,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;YAcpE,gBAAgB;IAS9B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAe1D"}
package/dist/src/Db.js CHANGED
@@ -49,6 +49,7 @@ var StatementConfigFactory_1 = require("./StatementConfigFactory");
49
49
  var TableAuth_1 = require("./auth/TableAuth");
50
50
  var TableServiceAuth_1 = require("./auth/TableServiceAuth");
51
51
  var TableWatcherRunner_1 = require("./TableWatcherRunner");
52
+ /** get `Db` if on server, and `DbService` if on browser */
52
53
  var getDb = function () {
53
54
  return typeof self === 'undefined' ? new Db() : (0, DbService_1.getDbService)();
54
55
  };
@@ -129,7 +130,7 @@ var Db = /** @class */ (function () {
129
130
  this.auth.canInsert(table);
130
131
  }
131
132
  recordCopy = Object.assign({}, record);
132
- return [4 /*yield*/, this.addDefaultFieldValues(table, recordCopy)];
133
+ return [4 /*yield*/, (0, Table_1.addDefaultFieldValues)(table, recordCopy, this.runAsSystem)];
133
134
  case 1:
134
135
  _a.sent();
135
136
  return [4 /*yield*/, this.tableWatcherRunner.runBeforeInsertTableWatchers(table, recordCopy)];
@@ -142,7 +143,7 @@ var Db = /** @class */ (function () {
142
143
  generateInsert = function (config) {
143
144
  return new db_query_1.StatementFactory().insert(table.name, serializedRecord, _this.statementConfigFactory.getStatementConfig(config));
144
145
  };
145
- return [4 /*yield*/, this.dbDriver.runDml(generateInsert)];
146
+ return [4 /*yield*/, this.dbDriver.runDml(generateInsert, this.currentTransaction)];
146
147
  case 4:
147
148
  _a.sent();
148
149
  return [4 /*yield*/, this.tableWatcherRunner.runAfterInsertTableWatchers(table, recordCopy)];
@@ -153,40 +154,6 @@ var Db = /** @class */ (function () {
153
154
  });
154
155
  });
155
156
  };
156
- Db.prototype.addDefaultFieldValues = function (table, record) {
157
- var _a;
158
- return __awaiter(this, void 0, void 0, function () {
159
- var _b, _c, _d, _i, columnPropertyName, column, _e, _f;
160
- return __generator(this, function (_g) {
161
- switch (_g.label) {
162
- case 0:
163
- _b = table.columns;
164
- _c = [];
165
- for (_d in _b)
166
- _c.push(_d);
167
- _i = 0;
168
- _g.label = 1;
169
- case 1:
170
- if (!(_i < _c.length)) return [3 /*break*/, 4];
171
- _d = _c[_i];
172
- if (!(_d in _b)) return [3 /*break*/, 3];
173
- columnPropertyName = _d;
174
- column = table.columns[columnPropertyName];
175
- if (!(((_a = column.options) === null || _a === void 0 ? void 0 : _a.defaultValue) && typeof record[columnPropertyName] === 'undefined')) return [3 /*break*/, 3];
176
- _e = record;
177
- _f = columnPropertyName;
178
- return [4 /*yield*/, column.options.defaultValue(record)];
179
- case 2:
180
- _e[_f] = _g.sent();
181
- _g.label = 3;
182
- case 3:
183
- _i++;
184
- return [3 /*break*/, 1];
185
- case 4: return [2 /*return*/];
186
- }
187
- });
188
- });
189
- };
190
157
  Db.prototype.update = function (table, record, query) {
191
158
  return __awaiter(this, void 0, void 0, function () {
192
159
  var recordCopy, qb, recordSearializer, serializedRecord, generateUpdate, recordUpdateCount;
@@ -201,7 +168,7 @@ var Db = /** @class */ (function () {
201
168
  throw new Error("Update must be called with either a Query or a record with an id property");
202
169
  }
203
170
  recordCopy = Object.assign({}, record);
204
- return [4 /*yield*/, this.addUpdateFieldValues(table, recordCopy)];
171
+ return [4 /*yield*/, (0, Table_1.addUpdateFieldValues)(table, recordCopy)];
205
172
  case 1:
206
173
  _a.sent();
207
174
  qb = new QueryBuilderFactory_1.QueryBuilderFactory().getQueryBuilder(table, query);
@@ -220,7 +187,7 @@ var Db = /** @class */ (function () {
220
187
  generateUpdate = function (config) {
221
188
  return new db_query_1.StatementFactory().update(table.name, serializedRecord, qb, _this.statementConfigFactory.getStatementConfig(config));
222
189
  };
223
- return [4 /*yield*/, this.dbDriver.runDml(generateUpdate)];
190
+ return [4 /*yield*/, this.dbDriver.runDml(generateUpdate, this.currentTransaction)];
224
191
  case 4:
225
192
  recordUpdateCount = _a.sent();
226
193
  return [4 /*yield*/, this.tableWatcherRunner.runAfterUpdateTableWatchers(table, recordUpdateCount, recordCopy, qb)];
@@ -231,40 +198,6 @@ var Db = /** @class */ (function () {
231
198
  });
232
199
  });
233
200
  };
234
- Db.prototype.addUpdateFieldValues = function (table, record) {
235
- var _a;
236
- return __awaiter(this, void 0, void 0, function () {
237
- var _b, _c, _d, _i, columnPropertyName, column, _e, _f;
238
- return __generator(this, function (_g) {
239
- switch (_g.label) {
240
- case 0:
241
- _b = table.columns;
242
- _c = [];
243
- for (_d in _b)
244
- _c.push(_d);
245
- _i = 0;
246
- _g.label = 1;
247
- case 1:
248
- if (!(_i < _c.length)) return [3 /*break*/, 4];
249
- _d = _c[_i];
250
- if (!(_d in _b)) return [3 /*break*/, 3];
251
- columnPropertyName = _d;
252
- column = table.columns[columnPropertyName];
253
- if (!((_a = column.options) === null || _a === void 0 ? void 0 : _a.updateValue)) return [3 /*break*/, 3];
254
- _e = record;
255
- _f = columnPropertyName;
256
- return [4 /*yield*/, column.options.updateValue(record)];
257
- case 2:
258
- _e[_f] = _g.sent();
259
- _g.label = 3;
260
- case 3:
261
- _i++;
262
- return [3 /*break*/, 1];
263
- case 4: return [2 /*return*/];
264
- }
265
- });
266
- });
267
- };
268
201
  Db.prototype.delete = function (table, query) {
269
202
  return __awaiter(this, void 0, void 0, function () {
270
203
  var qb, recordsToDelete, recordsToDeleteIds, deleteQb, generateDelete, recordDeleteCount;
@@ -294,7 +227,7 @@ var Db = /** @class */ (function () {
294
227
  return [4 /*yield*/, this.tableWatcherRunner.runBeforeDeleteTableWatchers(table, recordsToDelete, qb)];
295
228
  case 3:
296
229
  _a.sent();
297
- return [4 /*yield*/, this.dbDriver.runDml(generateDelete)];
230
+ return [4 /*yield*/, this.dbDriver.runDml(generateDelete, this.currentTransaction)];
298
231
  case 4:
299
232
  recordDeleteCount = _a.sent();
300
233
  return [4 /*yield*/, this.runCascadeDeletions(table, recordsToDeleteIds)];
@@ -400,7 +333,7 @@ var Db = /** @class */ (function () {
400
333
  generateQuery = function (config) {
401
334
  return qb.toSql(_this.statementConfigFactory.getStatementConfig(config));
402
335
  };
403
- return [4 /*yield*/, this.dbDriver.runQuery(generateQuery)];
336
+ return [4 /*yield*/, this.dbDriver.runQuery(generateQuery, this.currentTransaction)];
404
337
  case 1:
405
338
  serializedRecords = _a.sent();
406
339
  recordSearializer = new Record_1.RecordSerializer(table);
@@ -428,7 +361,7 @@ var Db = /** @class */ (function () {
428
361
  generateQuery = function (config) {
429
362
  return qb.toSql(_this.statementConfigFactory.getStatementConfig(config));
430
363
  };
431
- return [4 /*yield*/, this.dbDriver.runQuery(generateQuery)];
364
+ return [4 /*yield*/, this.dbDriver.runQuery(generateQuery, this.currentTransaction)];
432
365
  case 1:
433
366
  result = _a.sent();
434
367
  return [2 /*return*/, result[0]['count']];
@@ -451,6 +384,64 @@ var Db = /** @class */ (function () {
451
384
  });
452
385
  });
453
386
  };
387
+ /**
388
+ * Run a transaction.
389
+ *
390
+ * Use this db instance for any operation you want to include in the transaction.
391
+ *
392
+ * Note: This method uses Db instance state. Usually it is best to create a new instance
393
+ * of Db to run a transaction.
394
+ *
395
+ * Note: Nested transactions are not supported; will throw.
396
+ *
397
+ *
398
+ * Example:
399
+ *
400
+ * ```
401
+ * const db = getDb();
402
+ * const results = await db.runTransaction(async () => {
403
+ * const emp1 = await db.insert(emplyeeTable, testEmployee1);
404
+ * const emp2 = await db.insert(emplyeeTable, testEmployee2);
405
+ * await db.update(emplyeeTable, { department: 'R&D' }, { id: emp1.id });
406
+ * await someFunctionThatDoesDbOps(db);
407
+ * return { emp1, emp2 };
408
+ * });
409
+ * ```
410
+ */
411
+ Db.prototype.runTransaction = function (fn) {
412
+ return __awaiter(this, void 0, void 0, function () {
413
+ var _this = this;
414
+ return __generator(this, function (_a) {
415
+ switch (_a.label) {
416
+ case 0:
417
+ if (this.currentTransaction) {
418
+ throw new Error("Nested transactions are not supported. A transaction is already running on this Db instance.");
419
+ }
420
+ return [4 /*yield*/, this.dbDriver.runTransaction(function (transaction) { return __awaiter(_this, void 0, void 0, function () {
421
+ var result;
422
+ return __generator(this, function (_a) {
423
+ switch (_a.label) {
424
+ case 0:
425
+ this.currentTransaction = transaction;
426
+ _a.label = 1;
427
+ case 1:
428
+ _a.trys.push([1, , 3, 4]);
429
+ return [4 /*yield*/, fn()];
430
+ case 2:
431
+ result = _a.sent();
432
+ return [2 /*return*/, result];
433
+ case 3:
434
+ this.currentTransaction = undefined;
435
+ return [7 /*endfinally*/];
436
+ case 4: return [2 /*return*/];
437
+ }
438
+ });
439
+ }); })];
440
+ case 1: return [2 /*return*/, _a.sent()];
441
+ }
442
+ });
443
+ });
444
+ };
454
445
  return Db;
455
446
  }());
456
447
  exports.Db = Db;
@@ -1 +1 @@
1
- {"version":3,"file":"Db.js","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Db.js","sourceRoot":"","sources":["../../src/Db.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ export declare const getTables: <T extends Record = any>() => Table<T>[];
8
8
  export declare const tableByName: (name: string) => Table<any>;
9
9
  export declare const getColumnPropertyName: (table: Table<any>, columnName: string) => string | null;
10
10
  export declare const getColumnByName: (table: Table<any>, columnName: string) => Column<any, any> | null;
11
+ export declare const addDefaultFieldValues: (table: Table<any>, record: any, runAsSystem: boolean) => Promise<void>;
12
+ export declare const addUpdateFieldValues: (table: Table<any>, record: any) => Promise<void>;
11
13
  /**
12
14
  * primary key is `id`
13
15
  */
@@ -81,6 +83,8 @@ export type ColumnOptions = {
81
83
  nullable?: boolean;
82
84
  /** Value stored on insert */
83
85
  defaultValue?: (insertObj: any) => Promise<any>;
86
+ /** If true, the `defaultValue` function will always provide the value and override any existing value */
87
+ forceDefaultValue?: boolean | ((runAsSystem: boolean) => boolean);
84
88
  /** Value stored on update */
85
89
  updateValue?: (updateObj: any) => Promise<any>;
86
90
  /** Add conditions to query; called on every query of this table */
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.ts"],"names":[],"mappings":"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"}
package/dist/src/Table.js CHANGED
@@ -1,6 +1,42 @@
1
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
+ };
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Table = exports.getColumnByName = exports.getColumnPropertyName = exports.tableByName = exports.getTables = exports.isTable = void 0;
39
+ exports.Table = exports.addUpdateFieldValues = exports.addDefaultFieldValues = exports.getColumnByName = exports.getColumnPropertyName = exports.tableByName = exports.getTables = exports.isTable = void 0;
4
40
  var reflection_1 = require("@proteinjs/reflection");
5
41
  var TableSerializer_1 = require("./serializers/TableSerializer");
6
42
  var isTable = function (obj) { return obj.__serializerId === TableSerializer_1.TableSerializerId; };
@@ -38,6 +74,75 @@ var getColumnByName = function (table, columnName) {
38
74
  return null;
39
75
  };
40
76
  exports.getColumnByName = getColumnByName;
77
+ var addDefaultFieldValues = function (table, record, runAsSystem) { return __awaiter(void 0, void 0, void 0, function () {
78
+ var _a, _b, _c, _i, columnPropertyName, column, _d, _e;
79
+ var _f, _g, _h;
80
+ return __generator(this, function (_j) {
81
+ switch (_j.label) {
82
+ case 0:
83
+ _a = table.columns;
84
+ _b = [];
85
+ for (_c in _a)
86
+ _b.push(_c);
87
+ _i = 0;
88
+ _j.label = 1;
89
+ case 1:
90
+ if (!(_i < _b.length)) return [3 /*break*/, 4];
91
+ _c = _b[_i];
92
+ if (!(_c in _a)) return [3 /*break*/, 3];
93
+ columnPropertyName = _c;
94
+ column = table.columns[columnPropertyName];
95
+ if (!(((_f = column.options) === null || _f === void 0 ? void 0 : _f.defaultValue) &&
96
+ (typeof record[columnPropertyName] === 'undefined' ||
97
+ ((_g = column.options) === null || _g === void 0 ? void 0 : _g.forceDefaultValue) === true ||
98
+ (typeof ((_h = column.options) === null || _h === void 0 ? void 0 : _h.forceDefaultValue) === 'function' && column.options.forceDefaultValue(runAsSystem))))) return [3 /*break*/, 3];
99
+ _d = record;
100
+ _e = columnPropertyName;
101
+ return [4 /*yield*/, column.options.defaultValue(record)];
102
+ case 2:
103
+ _d[_e] = _j.sent();
104
+ _j.label = 3;
105
+ case 3:
106
+ _i++;
107
+ return [3 /*break*/, 1];
108
+ case 4: return [2 /*return*/];
109
+ }
110
+ });
111
+ }); };
112
+ exports.addDefaultFieldValues = addDefaultFieldValues;
113
+ var addUpdateFieldValues = function (table, record) { return __awaiter(void 0, void 0, void 0, function () {
114
+ var _a, _b, _c, _i, columnPropertyName, column, _d, _e;
115
+ var _f;
116
+ return __generator(this, function (_g) {
117
+ switch (_g.label) {
118
+ case 0:
119
+ _a = table.columns;
120
+ _b = [];
121
+ for (_c in _a)
122
+ _b.push(_c);
123
+ _i = 0;
124
+ _g.label = 1;
125
+ case 1:
126
+ if (!(_i < _b.length)) return [3 /*break*/, 4];
127
+ _c = _b[_i];
128
+ if (!(_c in _a)) return [3 /*break*/, 3];
129
+ columnPropertyName = _c;
130
+ column = table.columns[columnPropertyName];
131
+ if (!((_f = column.options) === null || _f === void 0 ? void 0 : _f.updateValue)) return [3 /*break*/, 3];
132
+ _d = record;
133
+ _e = columnPropertyName;
134
+ return [4 /*yield*/, column.options.updateValue(record)];
135
+ case 2:
136
+ _d[_e] = _g.sent();
137
+ _g.label = 3;
138
+ case 3:
139
+ _i++;
140
+ return [3 /*break*/, 1];
141
+ case 4: return [2 /*return*/];
142
+ }
143
+ });
144
+ }); };
145
+ exports.addUpdateFieldValues = addUpdateFieldValues;
41
146
  /**
42
147
  * primary key is `id`
43
148
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../src/Table.ts"],"names":[],"mappings":";;;AAAA,oDAAmE;AAGnE,iEAAkE;AAI3D,IAAM,OAAO,GAAG,UAAC,GAAQ,IAAK,OAAA,GAAG,CAAC,cAAc,KAAK,mCAAiB,EAAxC,CAAwC,CAAC;AAAjE,QAAA,OAAO,WAA0D;AAEvE,IAAM,SAAS,GAAG,cAA8B,OAAA,6BAAgB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAW,qBAAqB,CAAC,EAA/D,CAA+D,CAAC;AAA1G,QAAA,SAAS,aAAiG;AAEhH,IAAM,WAAW,GAAG,UAAC,IAAY;IACtC,IAAM,MAAM,GAAG,IAAA,iBAAS,GAAE,CAAC;IAC3B,KAAoB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM,EAAE;QAAvB,IAAM,KAAK,eAAA;QACd,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;YACtB,OAAO,KAAK,CAAC;SACd;KACF;IAED,MAAM,IAAI,KAAK,CAAC,gCAAyB,IAAI,CAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AATW,QAAA,WAAW,eAStB;AAEK,IAAM,qBAAqB,GAAG,UAAC,KAAiB,EAAE,UAAkB;IACzE,KAAK,IAAM,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAAE;QAC9C,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,IAAI,IAAI,UAAU,EAAE;YAC7B,OAAO,kBAAkB,CAAC;SAC3B;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AATW,QAAA,qBAAqB,yBAShC;AAEK,IAAM,eAAe,GAAG,UAAC,KAAiB,EAAE,UAAkB;IACnE,KAAK,IAAM,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAAE;QAC9C,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,IAAI,IAAI,UAAU,EAAE;YAC7B,OAAO,MAAM,CAAC;SACf;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AATW,QAAA,eAAe,mBAS1B;AAEF;;GAEG;AACH;IAAA;QACS,mBAAc,GAAG,mCAAiB,CAAC;QAGnC,YAAO,GAA8C,EAAE,CAAC;QAC/D,6FAA6F;QACtF,4BAAuB,GAAuD,cAAM,OAAA,EAAE,EAAF,CAAE,CAAC;QAC9F;;;WAGG;QACI,wBAAmB,GAAwB;YAChD,8BAA8B,EAAE,KAAK;SACtC,CAAC;IASJ,CAAC;IAAD,YAAC;AAAD,CAAC,AAtBD,IAsBC;AAtBqB,sBAAK"}
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../src/Table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Service } from '@proteinjs/service';
2
+ import { Operation } from '../transaction/Transaction';
3
+ export declare const getTransactionRunnerService: () => TransactionRunnerService;
4
+ export interface TransactionRunnerService extends Service {
5
+ run(ops: Operation<any>[]): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=TransactionRunnerService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionRunnerService.d.ts","sourceRoot":"","sources":["../../../src/services/TransactionRunnerService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,eAAO,MAAM,2BAA2B,gCAEvC,CAAC;AAEF,MAAM,WAAW,wBAAyB,SAAQ,OAAO;IACvD,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTransactionRunnerService = void 0;
4
+ var service_1 = require("@proteinjs/service");
5
+ exports.getTransactionRunnerService = (0, service_1.serviceFactory)('@proteinjs/db/TransactionRunnerService');
6
+ //# sourceMappingURL=TransactionRunnerService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionRunnerService.js","sourceRoot":"","sources":["../../../src/services/TransactionRunnerService.ts"],"names":[],"mappings":";;;AAAA,8CAA6D;AAGhD,QAAA,2BAA2B,GAAG,IAAA,wBAAc,EACvD,wCAAwC,CACzC,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { Record } from '../Record';
2
+ import { DbService } from '../services/DbService';
3
+ import { Table } from '../Table';
4
+ export type OperationQueue<R extends Record = Record> = {
5
+ insert: (...args: Parameters<DbService<R>['insert']>) => Promise<R>;
6
+ update: (...args: Parameters<DbService<R>['update']>) => void;
7
+ delete: (...args: Parameters<DbService<R>['delete']>) => void;
8
+ };
9
+ export type Operation<R extends Record = Record> = {
10
+ name: 'insert' | 'update' | 'delete';
11
+ args: Parameters<DbService<R>['insert']> | Parameters<DbService<R>['update']> | Parameters<DbService<R>['delete']>;
12
+ };
13
+ /**
14
+ * A queue of db write operations that are executed sequentially (not batched) as a single transaction when `run` is called.
15
+ *
16
+ * Intended to be used on the client to decrease network calls when performing an atomic unit of db write operations.
17
+ *
18
+ * A more robust server-side transaction api is available via `Db.runTransaction`.
19
+ */
20
+ export declare class Transaction implements OperationQueue {
21
+ private onInsert?;
22
+ private onUpdate?;
23
+ private onDelete?;
24
+ /** Operations to be run in sequence in a transaction when `run` is called. */
25
+ ops: Operation<any>[];
26
+ /**
27
+ * Local cache of tables.
28
+ *
29
+ * Data will be updated as operations are queued.
30
+ */
31
+ db: {
32
+ [table: string]: {
33
+ [id: string]: any;
34
+ };
35
+ };
36
+ constructor(onInsert?: ((table: Table<any>, record: any) => void) | undefined, onUpdate?: ((table: Table<any>, prevRecord: any, currentRecord: any) => void) | undefined, onDelete?: ((table: Table<any>, record: any) => void) | undefined);
37
+ /**
38
+ * @returns locally cached records for table
39
+ */
40
+ recordMap(table: string): {
41
+ [id: string]: any;
42
+ };
43
+ /**
44
+ * Queue an insert.
45
+ */
46
+ insert<R extends Record = Record>(...args: Parameters<DbService<R>['insert']>): Promise<R>;
47
+ /**
48
+ * Queue an update.
49
+ *
50
+ * Updates are performed in-place on the existing object to ensure all references
51
+ * receive the changes.
52
+ *
53
+ * If a `QueryBuilder` is passed in for `query`, changes will not be made to the cached `db`.
54
+ * Passing in an `ObjectQuery` will update the cached `db`.
55
+ */
56
+ update<R extends Record = Record>(...args: Parameters<DbService<R>['update']>): void;
57
+ /**
58
+ * Queue a delete.
59
+ *
60
+ * If a `QueryBuilder` is passed in for `query`, changes will not be made to the cached `db`.
61
+ * Passing in an `ObjectQuery` will update the cached `db`.
62
+ */
63
+ delete<R extends Record = Record>(...args: Parameters<DbService<R>['delete']>): void;
64
+ /**
65
+ * Run the operations in order (not a batch), as a single transaction.
66
+ */
67
+ run(): Promise<void>;
68
+ }
69
+ //# sourceMappingURL=Transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/Transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAe,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAyB,KAAK,EAAE,MAAM,UAAU,CAAC;AAIxD,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACtD,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,CAAC;IAC9D,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,CAAC;CAC/D,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACjD,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;CACpH,CAAC;AAIF;;;;;;GAMG;AACH,qBAAa,WAAY,YAAW,cAAc;IAY9C,OAAO,CAAC,QAAQ,CAAC;IACjB,OAAO,CAAC,QAAQ,CAAC;IACjB,OAAO,CAAC,QAAQ,CAAC;IAbnB,8EAA8E;IAC9E,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAM;IAE3B;;;;OAIG;IACH,EAAE,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG;YAAE,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAA;KAAE,CAAM;gBAG1C,QAAQ,CAAC,WAAU,MAAM,GAAG,CAAC,UAAU,GAAG,KAAK,IAAI,aAAA,EACnD,QAAQ,CAAC,WAAU,MAAM,GAAG,CAAC,cAAc,GAAG,iBAAiB,GAAG,KAAK,IAAI,aAAA,EAC3E,QAAQ,CAAC,WAAU,MAAM,GAAG,CAAC,UAAU,GAAG,KAAK,IAAI,aAAA;IAG7D;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM;;;IAQvB;;OAEG;IACG,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmBhG;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI;IAwDpF;;;;;OAKG;IACH,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI;IAyBpF;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAS3B"}