@proteinjs/db 1.12.0 → 1.13.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/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.13.0](https://github.com/proteinjs/db/compare/@proteinjs/db@1.12.0...@proteinjs/db@1.13.0) (2025-03-28)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * simplify validation for column table name in validateDynamicReferenceColumns ([899d149](https://github.com/proteinjs/db/commit/899d149d87de7356ee488e169003a473a6f8b950))
12
+
13
+
14
+ ### Features
15
+
16
+ * `Transaction.delete` added support for updating the cached db when a `QueryBuilder` with a `id IN string[]` condition is passed in. ([211ba0f](https://github.com/proteinjs/db/commit/211ba0f6dfa1e10c281b4c9d2367af57d695b956))
17
+
18
+
19
+
20
+
21
+
6
22
  # [1.12.0](https://github.com/proteinjs/db/compare/@proteinjs/db@1.11.0...@proteinjs/db@1.12.0) (2025-02-07)
7
23
 
8
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"TableManager.d.ts","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAa,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;CAC3C;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA+C;IACtD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;gBAGpC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,CAAC,EAAE,cAAc;IAO3B,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IAI7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjD,OAAO,CAAC,+BAA+B;IA0DvC,OAAO,CAAC,gBAAgB;YAgBV,eAAe;YA6Ff,kBAAkB;CA6CjC"}
1
+ {"version":3,"file":"TableManager.d.ts","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAa,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;CAC3C;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA+C;IACtD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;gBAGpC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,CAAC,EAAE,cAAc;IAO3B,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IAI7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjD,OAAO,CAAC,+BAA+B;IAwDvC,OAAO,CAAC,gBAAgB;YAgBV,eAAe;YA6Ff,kBAAkB;CA6CjC"}
@@ -127,10 +127,10 @@ var TableManager = /** @class */ (function () {
127
127
  return;
128
128
  }
129
129
  var dynamicRefColumns = [];
130
- var dynamicRefTableNameColumns = [];
131
- // First pass: collect all dynamic reference columns
130
+ var dynamicRefTableNameColumns = new Set();
131
+ // collect both dynamic reference columns and table name columns
132
132
  Object.entries(table.columns).forEach(function (_a) {
133
- var propertyName = _a[0], column = _a[1];
133
+ var _ = _a[0], column = _a[1];
134
134
  if (isDynamicRefColumn(column)) {
135
135
  dynamicRefColumns.push({
136
136
  columnName: column.name,
@@ -138,26 +138,23 @@ var TableManager = /** @class */ (function () {
138
138
  });
139
139
  }
140
140
  else if (isDynamicRefTableNameColumn(column)) {
141
- dynamicRefTableNameColumns.push(column.name);
141
+ dynamicRefTableNameColumns.add(column.name);
142
142
  }
143
143
  });
144
- // Second pass: validate that each DynamicReferenceColumn has its required table name column
144
+ // Validate references and mark used table names
145
145
  dynamicRefColumns.forEach(function (_a) {
146
146
  var columnName = _a.columnName, tableColumnName = _a.tableColumnName;
147
- if (!dynamicRefTableNameColumns.includes(tableColumnName)) {
147
+ if (!dynamicRefTableNameColumns.has(tableColumnName)) {
148
148
  throw new Error("Table ".concat(table.name, " has a DynamicReferenceColumn '").concat(columnName, "' but is missing its required DynamicReferenceTableNameColumn '").concat(tableColumnName, "'"));
149
149
  }
150
+ // Mark this table name column as used by removing it from the set
151
+ dynamicRefTableNameColumns.delete(tableColumnName);
150
152
  });
151
- // Third pass: validate that each DynamicReferenceTableNameColumn is used by a DynamicReferenceColumn
152
- dynamicRefTableNameColumns.forEach(function (tableNameColumnName) {
153
- var hasMatchingRefColumn = dynamicRefColumns.some(function (_a) {
154
- var tableColumnName = _a.tableColumnName;
155
- return tableColumnName === tableNameColumnName;
156
- });
157
- if (!hasMatchingRefColumn) {
158
- throw new Error("Table ".concat(table.name, " has a DynamicReferenceTableNameColumn '").concat(tableNameColumnName, "' but no DynamicReferenceColumn references it"));
159
- }
160
- });
153
+ // Any remaining table name columns are unused
154
+ if (dynamicRefTableNameColumns.size > 0) {
155
+ var unusedColumn = dynamicRefTableNameColumns.values().next().value;
156
+ throw new Error("Table ".concat(table.name, " has a DynamicReferenceTableNameColumn '").concat(unusedColumn, "' but no DynamicReferenceColumn references it"));
157
+ }
161
158
  };
162
159
  TableManager.prototype.shouldAlterTable = function (tableChanges) {
163
160
  if (tableChanges.columnsToCreate.length == 0 &&
@@ -1 +1 @@
1
- {"version":3,"file":"TableManager.js","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableManager.js","sourceRoot":"","sources":["../../../src/schema/TableManager.ts"],"names":[],"mappings":"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"}
@@ -58,9 +58,16 @@ export declare class Transaction implements OperationQueue {
58
58
  * Queue a delete.
59
59
  *
60
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`.
61
+ * Passing in an `ObjectQuery` or a `QueryBuilder` with a `id IN string[]` condition will update the cached `db`.
62
62
  */
63
63
  delete<R extends Record = Record>(...args: Parameters<DbService<R>['delete']>): void;
64
+ /**
65
+ * If a QueryBuilder contains a condition like this:
66
+ * `{ field: 'id', operator: 'IN', value: string[] }`
67
+ * return the ids from the value.
68
+ * @param qb QueryBuilder
69
+ */
70
+ private getIdsFromInCondition;
64
71
  /**
65
72
  * Run the operations in order (not a batch), as a single transaction.
66
73
  */
@@ -1 +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"}
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;IAoCpF;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IA6B7B;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAS3B"}
@@ -196,15 +196,28 @@ var Transaction = /** @class */ (function () {
196
196
  * Queue a delete.
197
197
  *
198
198
  * If a `QueryBuilder` is passed in for `query`, changes will not be made to the cached `db`.
199
- * Passing in an `ObjectQuery` will update the cached `db`.
199
+ * Passing in an `ObjectQuery` or a `QueryBuilder` with a `id IN string[]` condition will update the cached `db`.
200
200
  */
201
201
  Transaction.prototype.delete = function () {
202
+ var _this = this;
202
203
  var args = [];
203
204
  for (var _i = 0; _i < arguments.length; _i++) {
204
205
  args[_i] = arguments[_i];
205
206
  }
206
207
  var table = args[0], query = args[1];
207
- if (!(0, util_1.isInstanceOf)(query, db_query_1.QueryBuilder)) {
208
+ if ((0, util_1.isInstanceOf)(query, db_query_1.QueryBuilder)) {
209
+ // Process `id IN string[]` condition, if exists
210
+ var qb = query;
211
+ var recordMap_1 = this.recordMap(table.name);
212
+ var ids = this.getIdsFromInCondition(qb);
213
+ ids.forEach(function (id) {
214
+ if (_this.onDelete && recordMap_1[id]) {
215
+ _this.onDelete(table, recordMap_1[id]);
216
+ }
217
+ delete recordMap_1[id];
218
+ });
219
+ }
220
+ else {
208
221
  var objectQuery = query;
209
222
  var recordMap = this.recordMap(table.name);
210
223
  if (objectQuery.id) {
@@ -227,6 +240,35 @@ var Transaction = /** @class */ (function () {
227
240
  }
228
241
  this.ops.push({ name: 'delete', args: args });
229
242
  };
243
+ /**
244
+ * If a QueryBuilder contains a condition like this:
245
+ * `{ field: 'id', operator: 'IN', value: string[] }`
246
+ * return the ids from the value.
247
+ * @param qb QueryBuilder
248
+ */
249
+ Transaction.prototype.getIdsFromInCondition = function (qb) {
250
+ var filterIdInConditions = function (nodeId) {
251
+ var node = qb.graph.node(nodeId);
252
+ if (node.type !== 'CONDITION') {
253
+ return false;
254
+ }
255
+ var condition = node;
256
+ if (condition.field !== 'id') {
257
+ return false;
258
+ }
259
+ if (condition.operator !== 'IN') {
260
+ return false;
261
+ }
262
+ return Array.isArray(condition.value) && typeof condition.value[0] === 'string';
263
+ };
264
+ var rootChildren = qb.graph.successors(qb.rootId) || [];
265
+ var idInConditionId = rootChildren.filter(filterIdInConditions)[0];
266
+ if (!idInConditionId) {
267
+ return [];
268
+ }
269
+ var value = qb.graph.node(idInConditionId).value;
270
+ return value;
271
+ };
230
272
  /**
231
273
  * Run the operations in order (not a batch), as a single transaction.
232
274
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../src/transaction/Transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../src/transaction/Transaction.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proteinjs/db",
3
- "version": "1.12.0",
3
+ "version": "1.13.0",
4
4
  "description": "Db",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -49,5 +49,5 @@
49
49
  },
50
50
  "main": "./dist/generated/index.js",
51
51
  "types": "./dist/generated/index.d.ts",
52
- "gitHead": "f3c64e4da2badc2aa155b38aa79ddda1a10878ec"
52
+ "gitHead": "1308b6fed79e851b736b2c5da8d468c8b18b9cc6"
53
53
  }
@@ -76,40 +76,38 @@ export class TableManager {
76
76
  }
77
77
 
78
78
  const dynamicRefColumns: DynamicRefColumnInfo[] = [];
79
- const dynamicRefTableNameColumns: string[] = [];
79
+ const dynamicRefTableNameColumns = new Set<string>();
80
80
 
81
- // First pass: collect all dynamic reference columns
82
- Object.entries(table.columns).forEach(([propertyName, column]) => {
81
+ // collect both dynamic reference columns and table name columns
82
+ Object.entries(table.columns).forEach(([_, column]) => {
83
83
  if (isDynamicRefColumn(column)) {
84
84
  dynamicRefColumns.push({
85
85
  columnName: column.name,
86
86
  tableColumnName: column.dynamicRefTableColName,
87
87
  });
88
88
  } else if (isDynamicRefTableNameColumn(column)) {
89
- dynamicRefTableNameColumns.push(column.name);
89
+ dynamicRefTableNameColumns.add(column.name);
90
90
  }
91
91
  });
92
92
 
93
- // Second pass: validate that each DynamicReferenceColumn has its required table name column
93
+ // Validate references and mark used table names
94
94
  dynamicRefColumns.forEach(({ columnName, tableColumnName }) => {
95
- if (!dynamicRefTableNameColumns.includes(tableColumnName)) {
95
+ if (!dynamicRefTableNameColumns.has(tableColumnName)) {
96
96
  throw new Error(
97
97
  `Table ${table.name} has a DynamicReferenceColumn '${columnName}' but is missing its required DynamicReferenceTableNameColumn '${tableColumnName}'`
98
98
  );
99
99
  }
100
+ // Mark this table name column as used by removing it from the set
101
+ dynamicRefTableNameColumns.delete(tableColumnName);
100
102
  });
101
103
 
102
- // Third pass: validate that each DynamicReferenceTableNameColumn is used by a DynamicReferenceColumn
103
- dynamicRefTableNameColumns.forEach((tableNameColumnName) => {
104
- const hasMatchingRefColumn = dynamicRefColumns.some(
105
- ({ tableColumnName }) => tableColumnName === tableNameColumnName
104
+ // Any remaining table name columns are unused
105
+ if (dynamicRefTableNameColumns.size > 0) {
106
+ const unusedColumn = dynamicRefTableNameColumns.values().next().value;
107
+ throw new Error(
108
+ `Table ${table.name} has a DynamicReferenceTableNameColumn '${unusedColumn}' but no DynamicReferenceColumn references it`
106
109
  );
107
- if (!hasMatchingRefColumn) {
108
- throw new Error(
109
- `Table ${table.name} has a DynamicReferenceTableNameColumn '${tableNameColumnName}' but no DynamicReferenceColumn references it`
110
- );
111
- }
112
- });
110
+ }
113
111
  }
114
112
 
115
113
  private shouldAlterTable(tableChanges: TableChanges) {
@@ -3,7 +3,7 @@ import { DbService, ObjectQuery } from '../services/DbService';
3
3
  import { getTransactionRunner } from './TransactionRunner';
4
4
  import { addDefaultFieldValues, Table } from '../Table';
5
5
  import { isInstanceOf } from '@proteinjs/util';
6
- import { QueryBuilder } from '@proteinjs/db-query';
6
+ import { Condition, QueryBuilder } from '@proteinjs/db-query';
7
7
 
8
8
  export type OperationQueue<R extends Record = Record> = {
9
9
  insert: (...args: Parameters<DbService<R>['insert']>) => Promise<R>;
@@ -144,11 +144,22 @@ export class Transaction implements OperationQueue {
144
144
  * Queue a delete.
145
145
  *
146
146
  * If a `QueryBuilder` is passed in for `query`, changes will not be made to the cached `db`.
147
- * Passing in an `ObjectQuery` will update the cached `db`.
147
+ * Passing in an `ObjectQuery` or a `QueryBuilder` with a `id IN string[]` condition will update the cached `db`.
148
148
  */
149
149
  delete<R extends Record = Record>(...args: Parameters<DbService<R>['delete']>): void {
150
150
  const [table, query] = args;
151
- if (!isInstanceOf(query, QueryBuilder)) {
151
+ if (isInstanceOf(query, QueryBuilder)) {
152
+ // Process `id IN string[]` condition, if exists
153
+ const qb = query as QueryBuilder;
154
+ const recordMap = this.recordMap(table.name);
155
+ const ids = this.getIdsFromInCondition(qb);
156
+ ids.forEach((id) => {
157
+ if (this.onDelete && recordMap[id]) {
158
+ this.onDelete(table, recordMap[id]);
159
+ }
160
+ delete recordMap[id];
161
+ });
162
+ } else {
152
163
  const objectQuery = query as ObjectQuery<any>;
153
164
  const recordMap = this.recordMap(table.name);
154
165
  if (objectQuery.id) {
@@ -171,6 +182,41 @@ export class Transaction implements OperationQueue {
171
182
  this.ops.push({ name: 'delete', args });
172
183
  }
173
184
 
185
+ /**
186
+ * If a QueryBuilder contains a condition like this:
187
+ * `{ field: 'id', operator: 'IN', value: string[] }`
188
+ * return the ids from the value.
189
+ * @param qb QueryBuilder
190
+ */
191
+ private getIdsFromInCondition(qb: QueryBuilder): string[] {
192
+ const filterIdInConditions = (nodeId: string): boolean => {
193
+ const node: any = qb.graph.node(nodeId);
194
+ if (node.type !== 'CONDITION') {
195
+ return false;
196
+ }
197
+
198
+ const condition = node as Condition<any>;
199
+ if (condition.field !== 'id') {
200
+ return false;
201
+ }
202
+
203
+ if (condition.operator !== 'IN') {
204
+ return false;
205
+ }
206
+
207
+ return Array.isArray(condition.value) && typeof condition.value[0] === 'string';
208
+ };
209
+
210
+ const rootChildren: string[] = qb.graph.successors(qb.rootId) || [];
211
+ const idInConditionId = rootChildren.filter(filterIdInConditions)[0];
212
+ if (!idInConditionId) {
213
+ return [];
214
+ }
215
+
216
+ const { value } = qb.graph.node(idInConditionId) as Condition<any>;
217
+ return value;
218
+ }
219
+
174
220
  /**
175
221
  * Run the operations in order (not a batch), as a single transaction.
176
222
  */