@type32/tauri-sqlite-orm 0.1.18-13 → 0.1.18-16
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.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +15 -8
- package/dist/index.mjs +15 -8
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -58,13 +58,14 @@ declare class SelectQueryBuilder<TTable extends AnyTable, TSelectedColumns exten
|
|
|
58
58
|
private joins;
|
|
59
59
|
private includeRelations;
|
|
60
60
|
private selectedTableAlias;
|
|
61
|
+
private selectedColumns;
|
|
61
62
|
constructor(db: Database, table: TTable, columns?: TSelectedColumns | undefined);
|
|
62
63
|
distinct(): this;
|
|
63
64
|
groupBy(...columns: AnySQLiteColumn[]): this;
|
|
64
65
|
having(condition: SQLCondition): this;
|
|
65
66
|
leftJoin<T extends AnyTable>(table: T, condition: SQLCondition, alias: string): this;
|
|
66
67
|
innerJoin<T extends AnyTable>(table: T, condition: SQLCondition, alias: string): this;
|
|
67
|
-
include(relations: Record<
|
|
68
|
+
include(relations: Partial<Record<keyof TTable['relations'], boolean>>): this;
|
|
68
69
|
private buildJoins;
|
|
69
70
|
execute(): Promise<any[]>;
|
|
70
71
|
private processRelationResults;
|
package/dist/index.d.ts
CHANGED
|
@@ -58,13 +58,14 @@ declare class SelectQueryBuilder<TTable extends AnyTable, TSelectedColumns exten
|
|
|
58
58
|
private joins;
|
|
59
59
|
private includeRelations;
|
|
60
60
|
private selectedTableAlias;
|
|
61
|
+
private selectedColumns;
|
|
61
62
|
constructor(db: Database, table: TTable, columns?: TSelectedColumns | undefined);
|
|
62
63
|
distinct(): this;
|
|
63
64
|
groupBy(...columns: AnySQLiteColumn[]): this;
|
|
64
65
|
having(condition: SQLCondition): this;
|
|
65
66
|
leftJoin<T extends AnyTable>(table: T, condition: SQLCondition, alias: string): this;
|
|
66
67
|
innerJoin<T extends AnyTable>(table: T, condition: SQLCondition, alias: string): this;
|
|
67
|
-
include(relations: Record<
|
|
68
|
+
include(relations: Partial<Record<keyof TTable['relations'], boolean>>): this;
|
|
68
69
|
private buildJoins;
|
|
69
70
|
execute(): Promise<any[]>;
|
|
70
71
|
private processRelationResults;
|
package/dist/index.js
CHANGED
|
@@ -186,8 +186,8 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
|
|
|
186
186
|
this.table = table;
|
|
187
187
|
this.columns = columns;
|
|
188
188
|
this.selectedTableAlias = table._.name;
|
|
189
|
-
|
|
190
|
-
this.query = `
|
|
189
|
+
this.selectedColumns = columns ? columns.map((c) => `${this.selectedTableAlias}.${table._.columns[c]._.name}`) : [`${this.selectedTableAlias}.*`];
|
|
190
|
+
this.query = `FROM ${table._.name} ${this.selectedTableAlias}`;
|
|
191
191
|
}
|
|
192
192
|
isDistinct = false;
|
|
193
193
|
groupByColumns = [];
|
|
@@ -195,9 +195,9 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
|
|
|
195
195
|
joins = [];
|
|
196
196
|
includeRelations = {};
|
|
197
197
|
selectedTableAlias;
|
|
198
|
+
selectedColumns = [];
|
|
198
199
|
distinct() {
|
|
199
200
|
this.isDistinct = true;
|
|
200
|
-
this.query = this.query.replace("SELECT", "SELECT DISTINCT");
|
|
201
201
|
return this;
|
|
202
202
|
}
|
|
203
203
|
groupBy(...columns) {
|
|
@@ -214,10 +214,12 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
|
|
|
214
214
|
}
|
|
215
215
|
leftJoin(table, condition, alias2) {
|
|
216
216
|
this.joins.push({ type: "LEFT", table, condition, alias: alias2 });
|
|
217
|
+
this.selectedColumns.push(`${alias2}.*`);
|
|
217
218
|
return this;
|
|
218
219
|
}
|
|
219
220
|
innerJoin(table, condition, alias2) {
|
|
220
221
|
this.joins.push({ type: "INNER", table, condition, alias: alias2 });
|
|
222
|
+
this.selectedColumns.push(`${alias2}.*`);
|
|
221
223
|
return this;
|
|
222
224
|
}
|
|
223
225
|
include(relations2) {
|
|
@@ -234,9 +236,15 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
|
|
|
234
236
|
for (const [relationName, include] of Object.entries(this.includeRelations)) {
|
|
235
237
|
if (!include) continue;
|
|
236
238
|
const relation = this.table.relations[relationName];
|
|
237
|
-
if (!relation)
|
|
239
|
+
if (!relation) {
|
|
240
|
+
console.warn(
|
|
241
|
+
`[Tauri-ORM] Relation "${relationName}" not found on table "${this.table._.name}". Skipping include.`
|
|
242
|
+
);
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
238
245
|
const foreignTable = relation.foreignTable;
|
|
239
246
|
const foreignAlias = `${this.selectedTableAlias}_${relationName}`;
|
|
247
|
+
this.selectedColumns.push(`${foreignAlias}.*`);
|
|
240
248
|
if (relation.type === "one" && relation.fields && relation.references) {
|
|
241
249
|
const conditions = relation.fields.map((field, i) => {
|
|
242
250
|
const localColumn = `${this.selectedTableAlias}.${field._.name}`;
|
|
@@ -266,10 +274,6 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
|
|
|
266
274
|
const condition = conditions.length > 1 ? and(...conditions) : conditions[0];
|
|
267
275
|
sql2 += ` LEFT JOIN ${foreignTable._.name} ${foreignAlias} ON ${condition.sql}`;
|
|
268
276
|
params.push(...condition.params);
|
|
269
|
-
this.query = this.query.replace("SELECT ", `SELECT ${this.selectedTableAlias}.*, ${foreignAlias}.* `).replace(
|
|
270
|
-
`SELECT ${this.selectedTableAlias}.*, `,
|
|
271
|
-
`SELECT ${this.selectedTableAlias}.*, ${foreignAlias}.*, `
|
|
272
|
-
);
|
|
273
277
|
}
|
|
274
278
|
}
|
|
275
279
|
}
|
|
@@ -278,9 +282,12 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
|
|
|
278
282
|
// Enhanced execute method that handles relation data mapping
|
|
279
283
|
async execute() {
|
|
280
284
|
const { sql: joinSql, params: joinParams } = this.buildJoins();
|
|
285
|
+
const distinct = this.isDistinct ? "DISTINCT " : "";
|
|
286
|
+
this.query = `SELECT ${distinct}${this.selectedColumns.join(", ")} ${this.query}`;
|
|
281
287
|
this.query += joinSql;
|
|
282
288
|
this.params.push(...joinParams);
|
|
283
289
|
const { sql: sql2, params } = this.build();
|
|
290
|
+
console.log("Executing SQL:", sql2, "with params:", params);
|
|
284
291
|
const rawResults = await this.db.select(sql2, params);
|
|
285
292
|
if (Object.keys(this.includeRelations).some((key) => this.includeRelations[key])) {
|
|
286
293
|
const processed = this.processRelationResults(rawResults);
|
package/dist/index.mjs
CHANGED
|
@@ -119,8 +119,8 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
|
|
|
119
119
|
this.table = table;
|
|
120
120
|
this.columns = columns;
|
|
121
121
|
this.selectedTableAlias = table._.name;
|
|
122
|
-
|
|
123
|
-
this.query = `
|
|
122
|
+
this.selectedColumns = columns ? columns.map((c) => `${this.selectedTableAlias}.${table._.columns[c]._.name}`) : [`${this.selectedTableAlias}.*`];
|
|
123
|
+
this.query = `FROM ${table._.name} ${this.selectedTableAlias}`;
|
|
124
124
|
}
|
|
125
125
|
isDistinct = false;
|
|
126
126
|
groupByColumns = [];
|
|
@@ -128,9 +128,9 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
|
|
|
128
128
|
joins = [];
|
|
129
129
|
includeRelations = {};
|
|
130
130
|
selectedTableAlias;
|
|
131
|
+
selectedColumns = [];
|
|
131
132
|
distinct() {
|
|
132
133
|
this.isDistinct = true;
|
|
133
|
-
this.query = this.query.replace("SELECT", "SELECT DISTINCT");
|
|
134
134
|
return this;
|
|
135
135
|
}
|
|
136
136
|
groupBy(...columns) {
|
|
@@ -147,10 +147,12 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
|
|
|
147
147
|
}
|
|
148
148
|
leftJoin(table, condition, alias2) {
|
|
149
149
|
this.joins.push({ type: "LEFT", table, condition, alias: alias2 });
|
|
150
|
+
this.selectedColumns.push(`${alias2}.*`);
|
|
150
151
|
return this;
|
|
151
152
|
}
|
|
152
153
|
innerJoin(table, condition, alias2) {
|
|
153
154
|
this.joins.push({ type: "INNER", table, condition, alias: alias2 });
|
|
155
|
+
this.selectedColumns.push(`${alias2}.*`);
|
|
154
156
|
return this;
|
|
155
157
|
}
|
|
156
158
|
include(relations2) {
|
|
@@ -167,9 +169,15 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
|
|
|
167
169
|
for (const [relationName, include] of Object.entries(this.includeRelations)) {
|
|
168
170
|
if (!include) continue;
|
|
169
171
|
const relation = this.table.relations[relationName];
|
|
170
|
-
if (!relation)
|
|
172
|
+
if (!relation) {
|
|
173
|
+
console.warn(
|
|
174
|
+
`[Tauri-ORM] Relation "${relationName}" not found on table "${this.table._.name}". Skipping include.`
|
|
175
|
+
);
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
171
178
|
const foreignTable = relation.foreignTable;
|
|
172
179
|
const foreignAlias = `${this.selectedTableAlias}_${relationName}`;
|
|
180
|
+
this.selectedColumns.push(`${foreignAlias}.*`);
|
|
173
181
|
if (relation.type === "one" && relation.fields && relation.references) {
|
|
174
182
|
const conditions = relation.fields.map((field, i) => {
|
|
175
183
|
const localColumn = `${this.selectedTableAlias}.${field._.name}`;
|
|
@@ -199,10 +207,6 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
|
|
|
199
207
|
const condition = conditions.length > 1 ? and(...conditions) : conditions[0];
|
|
200
208
|
sql2 += ` LEFT JOIN ${foreignTable._.name} ${foreignAlias} ON ${condition.sql}`;
|
|
201
209
|
params.push(...condition.params);
|
|
202
|
-
this.query = this.query.replace("SELECT ", `SELECT ${this.selectedTableAlias}.*, ${foreignAlias}.* `).replace(
|
|
203
|
-
`SELECT ${this.selectedTableAlias}.*, `,
|
|
204
|
-
`SELECT ${this.selectedTableAlias}.*, ${foreignAlias}.*, `
|
|
205
|
-
);
|
|
206
210
|
}
|
|
207
211
|
}
|
|
208
212
|
}
|
|
@@ -211,9 +215,12 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
|
|
|
211
215
|
// Enhanced execute method that handles relation data mapping
|
|
212
216
|
async execute() {
|
|
213
217
|
const { sql: joinSql, params: joinParams } = this.buildJoins();
|
|
218
|
+
const distinct = this.isDistinct ? "DISTINCT " : "";
|
|
219
|
+
this.query = `SELECT ${distinct}${this.selectedColumns.join(", ")} ${this.query}`;
|
|
214
220
|
this.query += joinSql;
|
|
215
221
|
this.params.push(...joinParams);
|
|
216
222
|
const { sql: sql2, params } = this.build();
|
|
223
|
+
console.log("Executing SQL:", sql2, "with params:", params);
|
|
217
224
|
const rawResults = await this.db.select(sql2, params);
|
|
218
225
|
if (Object.keys(this.includeRelations).some((key) => this.includeRelations[key])) {
|
|
219
226
|
const processed = this.processRelationResults(rawResults);
|