@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 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<string, boolean>): this;
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<string, boolean>): this;
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
- const columnNames = columns ? columns.map((c) => `${this.selectedTableAlias}.${table._.columns[c]._.name}`) : [`${this.selectedTableAlias}.*`];
190
- this.query = `SELECT ${columnNames.join(", ")} FROM ${table._.name} ${this.selectedTableAlias}`;
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) continue;
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
- const columnNames = columns ? columns.map((c) => `${this.selectedTableAlias}.${table._.columns[c]._.name}`) : [`${this.selectedTableAlias}.*`];
123
- this.query = `SELECT ${columnNames.join(", ")} FROM ${table._.name} ${this.selectedTableAlias}`;
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) continue;
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@type32/tauri-sqlite-orm",
3
- "version": "0.1.18-13",
3
+ "version": "0.1.18-16",
4
4
  "description": "A Drizzle-like ORM for Tauri v2's SQL JS API plugin.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",