@type32/tauri-sqlite-orm 0.1.18-3 → 0.1.18-5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +44 -15
- package/dist/index.mjs +44 -15
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -254,20 +254,43 @@ var InsertQueryBuilder = class extends BaseQueryBuilder {
|
|
|
254
254
|
if (this.dataSets.length === 0) {
|
|
255
255
|
throw new Error("No data provided for insert");
|
|
256
256
|
}
|
|
257
|
-
const
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
);
|
|
269
|
-
const
|
|
270
|
-
|
|
257
|
+
const processedDataSets = this.dataSets.map((dataSet) => {
|
|
258
|
+
const finalData = { ...dataSet };
|
|
259
|
+
for (const [key, column] of Object.entries(this.table._.columns)) {
|
|
260
|
+
if (finalData[key] === void 0) {
|
|
261
|
+
if (column.options.$defaultFn) {
|
|
262
|
+
finalData[key] = column.options.$defaultFn();
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return finalData;
|
|
267
|
+
});
|
|
268
|
+
const groups = /* @__PURE__ */ new Map();
|
|
269
|
+
for (const dataSet of processedDataSets) {
|
|
270
|
+
const keys = Object.keys(dataSet).sort().join(",");
|
|
271
|
+
if (!groups.has(keys)) {
|
|
272
|
+
groups.set(keys, []);
|
|
273
|
+
}
|
|
274
|
+
groups.get(keys).push(dataSet);
|
|
275
|
+
}
|
|
276
|
+
let lastInsertId = void 0;
|
|
277
|
+
for (const [_, dataSets] of groups) {
|
|
278
|
+
const columns = Object.keys(dataSets[0]);
|
|
279
|
+
const columnNames = columns.map(
|
|
280
|
+
(key) => this.table._.columns[key]._.name
|
|
281
|
+
);
|
|
282
|
+
const placeholders = `(${columns.map(() => "?").join(", ")})`;
|
|
283
|
+
const valuesSql = dataSets.map(() => placeholders).join(", ");
|
|
284
|
+
const finalQuery = `${this.query} (${columnNames.join(
|
|
285
|
+
", "
|
|
286
|
+
)}) VALUES ${valuesSql}`;
|
|
287
|
+
const params = dataSets.flatMap(
|
|
288
|
+
(data) => columns.map((col) => data[col] ?? null)
|
|
289
|
+
);
|
|
290
|
+
const result = await this.db.execute(finalQuery, params);
|
|
291
|
+
lastInsertId = result.lastInsertId;
|
|
292
|
+
}
|
|
293
|
+
return lastInsertId ?? 0;
|
|
271
294
|
}
|
|
272
295
|
};
|
|
273
296
|
var UpdateQueryBuilder = class extends BaseQueryBuilder {
|
|
@@ -282,6 +305,12 @@ var UpdateQueryBuilder = class extends BaseQueryBuilder {
|
|
|
282
305
|
return this;
|
|
283
306
|
}
|
|
284
307
|
build() {
|
|
308
|
+
const finalUpdateData = { ...this.updateData };
|
|
309
|
+
for (const [key, column] of Object.entries(this.table._.columns)) {
|
|
310
|
+
if (finalUpdateData[key] === void 0 && column.options.$onUpdateFn) {
|
|
311
|
+
finalUpdateData[key] = column.options.$onUpdateFn();
|
|
312
|
+
}
|
|
313
|
+
}
|
|
285
314
|
const baseQuery = this.query;
|
|
286
315
|
const whereParams = this.params;
|
|
287
316
|
let tablePart = baseQuery;
|
|
@@ -291,7 +320,7 @@ var UpdateQueryBuilder = class extends BaseQueryBuilder {
|
|
|
291
320
|
tablePart = baseQuery.substring(0, whereIndex);
|
|
292
321
|
whereClause = baseQuery.substring(whereIndex);
|
|
293
322
|
}
|
|
294
|
-
const entries = Object.entries(
|
|
323
|
+
const entries = Object.entries(finalUpdateData);
|
|
295
324
|
if (entries.length === 0) {
|
|
296
325
|
throw new Error("Cannot execute an update query without a .set() call.");
|
|
297
326
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -204,20 +204,43 @@ var InsertQueryBuilder = class extends BaseQueryBuilder {
|
|
|
204
204
|
if (this.dataSets.length === 0) {
|
|
205
205
|
throw new Error("No data provided for insert");
|
|
206
206
|
}
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
);
|
|
219
|
-
const
|
|
220
|
-
|
|
207
|
+
const processedDataSets = this.dataSets.map((dataSet) => {
|
|
208
|
+
const finalData = { ...dataSet };
|
|
209
|
+
for (const [key, column] of Object.entries(this.table._.columns)) {
|
|
210
|
+
if (finalData[key] === void 0) {
|
|
211
|
+
if (column.options.$defaultFn) {
|
|
212
|
+
finalData[key] = column.options.$defaultFn();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return finalData;
|
|
217
|
+
});
|
|
218
|
+
const groups = /* @__PURE__ */ new Map();
|
|
219
|
+
for (const dataSet of processedDataSets) {
|
|
220
|
+
const keys = Object.keys(dataSet).sort().join(",");
|
|
221
|
+
if (!groups.has(keys)) {
|
|
222
|
+
groups.set(keys, []);
|
|
223
|
+
}
|
|
224
|
+
groups.get(keys).push(dataSet);
|
|
225
|
+
}
|
|
226
|
+
let lastInsertId = void 0;
|
|
227
|
+
for (const [_, dataSets] of groups) {
|
|
228
|
+
const columns = Object.keys(dataSets[0]);
|
|
229
|
+
const columnNames = columns.map(
|
|
230
|
+
(key) => this.table._.columns[key]._.name
|
|
231
|
+
);
|
|
232
|
+
const placeholders = `(${columns.map(() => "?").join(", ")})`;
|
|
233
|
+
const valuesSql = dataSets.map(() => placeholders).join(", ");
|
|
234
|
+
const finalQuery = `${this.query} (${columnNames.join(
|
|
235
|
+
", "
|
|
236
|
+
)}) VALUES ${valuesSql}`;
|
|
237
|
+
const params = dataSets.flatMap(
|
|
238
|
+
(data) => columns.map((col) => data[col] ?? null)
|
|
239
|
+
);
|
|
240
|
+
const result = await this.db.execute(finalQuery, params);
|
|
241
|
+
lastInsertId = result.lastInsertId;
|
|
242
|
+
}
|
|
243
|
+
return lastInsertId ?? 0;
|
|
221
244
|
}
|
|
222
245
|
};
|
|
223
246
|
var UpdateQueryBuilder = class extends BaseQueryBuilder {
|
|
@@ -232,6 +255,12 @@ var UpdateQueryBuilder = class extends BaseQueryBuilder {
|
|
|
232
255
|
return this;
|
|
233
256
|
}
|
|
234
257
|
build() {
|
|
258
|
+
const finalUpdateData = { ...this.updateData };
|
|
259
|
+
for (const [key, column] of Object.entries(this.table._.columns)) {
|
|
260
|
+
if (finalUpdateData[key] === void 0 && column.options.$onUpdateFn) {
|
|
261
|
+
finalUpdateData[key] = column.options.$onUpdateFn();
|
|
262
|
+
}
|
|
263
|
+
}
|
|
235
264
|
const baseQuery = this.query;
|
|
236
265
|
const whereParams = this.params;
|
|
237
266
|
let tablePart = baseQuery;
|
|
@@ -241,7 +270,7 @@ var UpdateQueryBuilder = class extends BaseQueryBuilder {
|
|
|
241
270
|
tablePart = baseQuery.substring(0, whereIndex);
|
|
242
271
|
whereClause = baseQuery.substring(whereIndex);
|
|
243
272
|
}
|
|
244
|
-
const entries = Object.entries(
|
|
273
|
+
const entries = Object.entries(finalUpdateData);
|
|
245
274
|
if (entries.length === 0) {
|
|
246
275
|
throw new Error("Cannot execute an update query without a .set() call.");
|
|
247
276
|
}
|