@type32/tauri-sqlite-orm 0.1.18-18 → 0.1.18-19

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 CHANGED
@@ -186,7 +186,10 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
186
186
  this.table = table;
187
187
  this.columns = columns;
188
188
  this.selectedTableAlias = table._.name;
189
- this.selectedColumns = columns ? columns.map((c) => `${this.selectedTableAlias}.${table._.columns[c]._.name}`) : [`${this.selectedTableAlias}.*`];
189
+ const selected = columns ? columns.map((c) => this.table._.columns[c]) : Object.values(this.table._.columns);
190
+ this.selectedColumns = selected.map(
191
+ (col) => `${this.selectedTableAlias}.${col._.name} AS "${this.selectedTableAlias}.${col._.name}"`
192
+ );
190
193
  this.query = `FROM ${table._.name} ${this.selectedTableAlias}`;
191
194
  }
192
195
  isDistinct = false;
@@ -214,12 +217,18 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
214
217
  }
215
218
  leftJoin(table, condition, alias2) {
216
219
  this.joins.push({ type: "LEFT", table, condition, alias: alias2 });
217
- this.selectedColumns.push(`${alias2}.*`);
220
+ const aliasedColumns = Object.values(table._.columns).map(
221
+ (col) => `${alias2}.${col._.name} AS "${alias2}.${col._.name}"`
222
+ );
223
+ this.selectedColumns.push(...aliasedColumns);
218
224
  return this;
219
225
  }
220
226
  innerJoin(table, condition, alias2) {
221
227
  this.joins.push({ type: "INNER", table, condition, alias: alias2 });
222
- this.selectedColumns.push(`${alias2}.*`);
228
+ const aliasedColumns = Object.values(table._.columns).map(
229
+ (col) => `${alias2}.${col._.name} AS "${alias2}.${col._.name}"`
230
+ );
231
+ this.selectedColumns.push(...aliasedColumns);
223
232
  return this;
224
233
  }
225
234
  include(relations2) {
@@ -244,7 +253,10 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
244
253
  }
245
254
  const foreignTable = relation.foreignTable;
246
255
  const foreignAlias = `${this.selectedTableAlias}_${relationName}`;
247
- this.selectedColumns.push(`${foreignAlias}.*`);
256
+ const aliasedColumns = Object.values(foreignTable._.columns).map(
257
+ (col) => `${foreignAlias}.${col._.name} AS "${foreignAlias}.${col._.name}"`
258
+ );
259
+ this.selectedColumns.push(...aliasedColumns);
248
260
  if (relation.type === "one" && relation.fields && relation.references) {
249
261
  const conditions = relation.fields.map((field, i) => {
250
262
  const localColumn = `${this.selectedTableAlias}.${field._.name}`;
@@ -289,11 +301,26 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
289
301
  const { sql: sql2, params } = this.build();
290
302
  console.log("Executing SQL:", sql2, "with params:", params);
291
303
  const rawResults = await this.db.select(sql2, params);
292
- if (Object.keys(this.includeRelations).some((key) => this.includeRelations[key])) {
293
- const processed = this.processRelationResults(rawResults);
294
- return processed;
304
+ const hasIncludes = Object.values(this.includeRelations).some((i) => i);
305
+ if (hasIncludes) {
306
+ return this.processRelationResults(rawResults);
307
+ }
308
+ const hasJoins = this.joins.length > 0;
309
+ if (hasJoins) {
310
+ return rawResults;
295
311
  }
296
- return rawResults;
312
+ const prefix = `${this.selectedTableAlias}.`;
313
+ return rawResults.map((row) => {
314
+ const newRow = {};
315
+ for (const key in row) {
316
+ if (key.startsWith(prefix)) {
317
+ newRow[key.substring(prefix.length)] = row[key];
318
+ } else {
319
+ newRow[key] = row[key];
320
+ }
321
+ }
322
+ return newRow;
323
+ });
297
324
  }
298
325
  processRelationResults(rawResults) {
299
326
  if (!rawResults.length) return [];
package/dist/index.mjs CHANGED
@@ -119,7 +119,10 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
119
119
  this.table = table;
120
120
  this.columns = columns;
121
121
  this.selectedTableAlias = table._.name;
122
- this.selectedColumns = columns ? columns.map((c) => `${this.selectedTableAlias}.${table._.columns[c]._.name}`) : [`${this.selectedTableAlias}.*`];
122
+ const selected = columns ? columns.map((c) => this.table._.columns[c]) : Object.values(this.table._.columns);
123
+ this.selectedColumns = selected.map(
124
+ (col) => `${this.selectedTableAlias}.${col._.name} AS "${this.selectedTableAlias}.${col._.name}"`
125
+ );
123
126
  this.query = `FROM ${table._.name} ${this.selectedTableAlias}`;
124
127
  }
125
128
  isDistinct = false;
@@ -147,12 +150,18 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
147
150
  }
148
151
  leftJoin(table, condition, alias2) {
149
152
  this.joins.push({ type: "LEFT", table, condition, alias: alias2 });
150
- this.selectedColumns.push(`${alias2}.*`);
153
+ const aliasedColumns = Object.values(table._.columns).map(
154
+ (col) => `${alias2}.${col._.name} AS "${alias2}.${col._.name}"`
155
+ );
156
+ this.selectedColumns.push(...aliasedColumns);
151
157
  return this;
152
158
  }
153
159
  innerJoin(table, condition, alias2) {
154
160
  this.joins.push({ type: "INNER", table, condition, alias: alias2 });
155
- this.selectedColumns.push(`${alias2}.*`);
161
+ const aliasedColumns = Object.values(table._.columns).map(
162
+ (col) => `${alias2}.${col._.name} AS "${alias2}.${col._.name}"`
163
+ );
164
+ this.selectedColumns.push(...aliasedColumns);
156
165
  return this;
157
166
  }
158
167
  include(relations2) {
@@ -177,7 +186,10 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
177
186
  }
178
187
  const foreignTable = relation.foreignTable;
179
188
  const foreignAlias = `${this.selectedTableAlias}_${relationName}`;
180
- this.selectedColumns.push(`${foreignAlias}.*`);
189
+ const aliasedColumns = Object.values(foreignTable._.columns).map(
190
+ (col) => `${foreignAlias}.${col._.name} AS "${foreignAlias}.${col._.name}"`
191
+ );
192
+ this.selectedColumns.push(...aliasedColumns);
181
193
  if (relation.type === "one" && relation.fields && relation.references) {
182
194
  const conditions = relation.fields.map((field, i) => {
183
195
  const localColumn = `${this.selectedTableAlias}.${field._.name}`;
@@ -222,11 +234,26 @@ var SelectQueryBuilder = class extends BaseQueryBuilder {
222
234
  const { sql: sql2, params } = this.build();
223
235
  console.log("Executing SQL:", sql2, "with params:", params);
224
236
  const rawResults = await this.db.select(sql2, params);
225
- if (Object.keys(this.includeRelations).some((key) => this.includeRelations[key])) {
226
- const processed = this.processRelationResults(rawResults);
227
- return processed;
237
+ const hasIncludes = Object.values(this.includeRelations).some((i) => i);
238
+ if (hasIncludes) {
239
+ return this.processRelationResults(rawResults);
240
+ }
241
+ const hasJoins = this.joins.length > 0;
242
+ if (hasJoins) {
243
+ return rawResults;
228
244
  }
229
- return rawResults;
245
+ const prefix = `${this.selectedTableAlias}.`;
246
+ return rawResults.map((row) => {
247
+ const newRow = {};
248
+ for (const key in row) {
249
+ if (key.startsWith(prefix)) {
250
+ newRow[key.substring(prefix.length)] = row[key];
251
+ } else {
252
+ newRow[key] = row[key];
253
+ }
254
+ }
255
+ return newRow;
256
+ });
230
257
  }
231
258
  processRelationResults(rawResults) {
232
259
  if (!rawResults.length) return [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@type32/tauri-sqlite-orm",
3
- "version": "0.1.18-18",
3
+ "version": "0.1.18-19",
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",