@type32/tauri-sqlite-orm 0.1.18-4 → 0.1.18-6

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
@@ -38,6 +38,7 @@ declare class SQLiteColumn<TName extends string = string, TType extends ColumnDa
38
38
  unique(): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
39
39
  references<T extends AnyTable, K extends keyof T["_"]["columns"] & string>(ref: T, column: K): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
40
40
  $onUpdateFn(fn: () => ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
41
+ as(alias: string): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
41
42
  }
42
43
  declare const text: <TName extends string>(name: TName) => SQLiteColumn<TName, "TEXT", "default", false, false, false>;
43
44
  declare const integer: <TName extends string, TMode extends Mode = "default">(name: TName, config?: {
@@ -77,6 +78,7 @@ type SQLCondition = {
77
78
  declare const eq: <T>(column: AnySQLiteColumn, value: T) => SQLCondition;
78
79
  declare const and: (...conditions: SQLCondition[]) => SQLCondition;
79
80
  declare const or: (...conditions: SQLCondition[]) => SQLCondition;
81
+ declare const not: (condition: SQLCondition) => SQLCondition;
80
82
  declare const gt: <T>(column: AnySQLiteColumn, value: T) => SQLCondition;
81
83
  declare const gte: <T>(column: AnySQLiteColumn, value: T) => SQLCondition;
82
84
  declare const lt: <T>(column: AnySQLiteColumn, value: T) => SQLCondition;
@@ -85,13 +87,35 @@ declare const like: (column: AnySQLiteColumn, pattern: string) => SQLCondition;
85
87
  declare const isNull: (column: AnySQLiteColumn) => SQLCondition;
86
88
  declare const isNotNull: (column: AnySQLiteColumn) => SQLCondition;
87
89
  declare const inArray: <T>(column: AnySQLiteColumn, values: T[]) => SQLCondition;
90
+ declare const asc: (column: AnySQLiteColumn) => {
91
+ sql: string;
92
+ params: never[];
93
+ };
94
+ declare const desc: (column: AnySQLiteColumn) => {
95
+ sql: string;
96
+ params: never[];
97
+ };
98
+ declare const count: (column?: AnySQLiteColumn) => SQLCondition;
99
+ declare const countDistinct: (column: AnySQLiteColumn) => SQLCondition;
100
+ declare const sum: (column: AnySQLiteColumn) => SQLCondition;
101
+ declare const avg: (column: AnySQLiteColumn) => SQLCondition;
102
+ declare const max: (column: AnySQLiteColumn) => SQLCondition;
103
+ declare const min: (column: AnySQLiteColumn) => SQLCondition;
104
+ declare const sql: <T = unknown>(strings: TemplateStringsArray, ...values: any[]) => {
105
+ sql: string;
106
+ params: any[];
107
+ mapWith?: (value: any) => T;
108
+ };
88
109
  declare class BaseQueryBuilder {
89
110
  protected db: Database;
90
111
  protected query: string;
91
112
  protected params: any[];
92
113
  constructor(db: Database);
93
114
  where(condition: SQLCondition): this;
94
- orderBy(column: AnySQLiteColumn, direction?: "ASC" | "DESC"): this;
115
+ orderBy(column: AnySQLiteColumn | {
116
+ sql: string;
117
+ params: any[];
118
+ }, direction?: "ASC" | "DESC"): this;
95
119
  limit(count: number): this;
96
120
  offset(count: number): this;
97
121
  build(): {
@@ -102,31 +126,69 @@ declare class BaseQueryBuilder {
102
126
  declare class SelectQueryBuilder<TTable extends AnyTable, TSelectedColumns extends (keyof TTable["_"]["columns"])[] | undefined = undefined> extends BaseQueryBuilder {
103
127
  private table;
104
128
  private columns?;
129
+ private isDistinct;
130
+ private groupByColumns;
131
+ private havingCondition;
105
132
  constructor(db: Database, table: TTable, columns?: TSelectedColumns | undefined);
133
+ distinct(): this;
134
+ groupBy(...columns: AnySQLiteColumn[]): this;
135
+ having(condition: SQLCondition): this;
106
136
  execute(): Promise<TSelectedColumns extends (keyof TTable["_"]["columns"])[] ? Pick<InferSelectModel<TTable>, TSelectedColumns[number]>[] : InferSelectModel<TTable>[]>;
137
+ all(): Promise<TSelectedColumns extends (keyof TTable["_"]["columns"])[] ? Pick<InferSelectModel<TTable>, TSelectedColumns[number]>[] : InferSelectModel<TTable>[]>;
138
+ get(): Promise<TSelectedColumns extends (keyof TTable["_"]["columns"])[] ? Pick<InferSelectModel<TTable>, TSelectedColumns[number]> | undefined : InferSelectModel<TTable> | undefined>;
107
139
  }
108
140
  declare class InsertQueryBuilder<T extends AnyTable> extends BaseQueryBuilder {
109
141
  private table;
110
142
  private dataSets;
143
+ private returningColumns;
144
+ private onConflictAction;
145
+ private conflictTarget;
146
+ private updateSet;
111
147
  constructor(db: Database, table: T);
112
148
  values(data: Partial<InferInsertModel<T>> | Partial<InferInsertModel<T>>[]): this;
113
- execute(): Promise<number>;
149
+ returning(...columns: (keyof T["_"]["columns"])[]): this;
150
+ onConflictDoNothing(target?: AnySQLiteColumn | AnySQLiteColumn[]): this;
151
+ onConflictDoUpdate(config: {
152
+ target: AnySQLiteColumn | AnySQLiteColumn[];
153
+ set: Partial<InferInsertModel<T>>;
154
+ }): this;
155
+ private processDefaultValues;
156
+ private buildConflictClause;
157
+ execute(): Promise<T extends AnyTable ? (InferSelectModel<T> & Record<string, any>)[] : never>;
158
+ returningAll(): Promise<InferSelectModel<T>[]>;
114
159
  }
115
160
  declare class UpdateQueryBuilder<T extends AnyTable> extends BaseQueryBuilder {
116
161
  private table;
117
162
  private updateData;
163
+ private returningColumns;
118
164
  constructor(db: Database, table: T);
119
165
  set(data: Partial<InferInsertModel<T>>): this;
120
- build(): {
121
- sql: string;
122
- params: any[];
123
- };
124
- execute(): Promise<number>;
166
+ returning(...columns: (keyof T["_"]["columns"])[]): this;
167
+ private buildUpdateClause;
168
+ execute(): Promise<T extends AnyTable ? (InferSelectModel<T> & Record<string, any>)[] : never>;
169
+ returningAll(): Promise<InferSelectModel<T>[]>;
125
170
  }
126
171
  declare class DeleteQueryBuilder<T extends AnyTable> extends BaseQueryBuilder {
127
172
  private table;
173
+ private returningColumns;
128
174
  constructor(db: Database, table: T);
129
- execute(): Promise<number>;
175
+ returning(...columns: (keyof T["_"]["columns"])[]): this;
176
+ execute(): Promise<T extends AnyTable ? (InferSelectModel<T> & Record<string, any>)[] : never>;
177
+ returningAll(): Promise<InferSelectModel<T>[]>;
178
+ }
179
+ declare class WithQueryBuilder {
180
+ private db;
181
+ private ctes;
182
+ constructor(db: Database);
183
+ with(alias: string, query: {
184
+ sql: string;
185
+ params: any[];
186
+ }): this;
187
+ select<T extends AnyTable, C extends (keyof T["_"]["columns"])[] | undefined = undefined>(table: T, columns?: C): SelectQueryBuilder<T, C>;
188
+ insert<T extends AnyTable>(table: T): InsertQueryBuilder<T>;
189
+ update<T extends AnyTable>(table: T): UpdateQueryBuilder<T>;
190
+ delete<T extends AnyTable>(table: T): DeleteQueryBuilder<T>;
191
+ private applyWithClause;
130
192
  }
131
193
  declare class TauriORM {
132
194
  private db;
@@ -138,7 +200,14 @@ declare class TauriORM {
138
200
  insert<T extends AnyTable>(table: T): InsertQueryBuilder<T>;
139
201
  update<T extends AnyTable>(table: T): UpdateQueryBuilder<T>;
140
202
  delete<T extends AnyTable>(table: T): DeleteQueryBuilder<T>;
203
+ $with(alias: string): {
204
+ as: (query: {
205
+ sql: string;
206
+ params: any[];
207
+ }) => WithQueryBuilder;
208
+ };
141
209
  transaction<T>(callback: (tx: TauriORM) => Promise<T>): Promise<T>;
210
+ rollback(): never;
142
211
  private ensureSchemaMeta;
143
212
  private getSchemaMeta;
144
213
  private setSchemaMeta;
@@ -156,5 +225,7 @@ declare const relations: <T extends AnyTable, R extends Record<string, any>>(tab
156
225
  one: any;
157
226
  many: any;
158
227
  }) => R) => R;
228
+ declare const getTableColumns: <T extends AnyTable>(table: T) => Record<string, AnySQLiteColumn>;
229
+ declare const alias: <T extends AnyTable>(table: T, alias: string) => Table<T["_"]["columns"], T["_"]["name"]>;
159
230
 
160
- export { type AnySQLiteColumn, type AnyTable, type ColumnDataType, type ColumnOptions, DeleteQueryBuilder, type InferInsertModel, type InferSelectModel, InsertQueryBuilder, type Mode, type SQLCondition, SQLiteColumn, SelectQueryBuilder, Table, TauriORM, UpdateQueryBuilder, and, blob, boolean, eq, gt, gte, inArray, integer, isNotNull, isNull, like, lt, lte, or, real, relations, sqliteTable, text };
231
+ export { type AnySQLiteColumn, type AnyTable, type ColumnDataType, type ColumnOptions, DeleteQueryBuilder, type InferInsertModel, type InferSelectModel, InsertQueryBuilder, type Mode, type SQLCondition, SQLiteColumn, SelectQueryBuilder, Table, TauriORM, UpdateQueryBuilder, WithQueryBuilder, alias, and, asc, avg, blob, boolean, count, countDistinct, desc, eq, getTableColumns, gt, gte, inArray, integer, isNotNull, isNull, like, lt, lte, max, min, not, or, real, relations, sql, sqliteTable, sum, text };
package/dist/index.d.ts CHANGED
@@ -38,6 +38,7 @@ declare class SQLiteColumn<TName extends string = string, TType extends ColumnDa
38
38
  unique(): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
39
39
  references<T extends AnyTable, K extends keyof T["_"]["columns"] & string>(ref: T, column: K): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
40
40
  $onUpdateFn(fn: () => ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
41
+ as(alias: string): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
41
42
  }
42
43
  declare const text: <TName extends string>(name: TName) => SQLiteColumn<TName, "TEXT", "default", false, false, false>;
43
44
  declare const integer: <TName extends string, TMode extends Mode = "default">(name: TName, config?: {
@@ -77,6 +78,7 @@ type SQLCondition = {
77
78
  declare const eq: <T>(column: AnySQLiteColumn, value: T) => SQLCondition;
78
79
  declare const and: (...conditions: SQLCondition[]) => SQLCondition;
79
80
  declare const or: (...conditions: SQLCondition[]) => SQLCondition;
81
+ declare const not: (condition: SQLCondition) => SQLCondition;
80
82
  declare const gt: <T>(column: AnySQLiteColumn, value: T) => SQLCondition;
81
83
  declare const gte: <T>(column: AnySQLiteColumn, value: T) => SQLCondition;
82
84
  declare const lt: <T>(column: AnySQLiteColumn, value: T) => SQLCondition;
@@ -85,13 +87,35 @@ declare const like: (column: AnySQLiteColumn, pattern: string) => SQLCondition;
85
87
  declare const isNull: (column: AnySQLiteColumn) => SQLCondition;
86
88
  declare const isNotNull: (column: AnySQLiteColumn) => SQLCondition;
87
89
  declare const inArray: <T>(column: AnySQLiteColumn, values: T[]) => SQLCondition;
90
+ declare const asc: (column: AnySQLiteColumn) => {
91
+ sql: string;
92
+ params: never[];
93
+ };
94
+ declare const desc: (column: AnySQLiteColumn) => {
95
+ sql: string;
96
+ params: never[];
97
+ };
98
+ declare const count: (column?: AnySQLiteColumn) => SQLCondition;
99
+ declare const countDistinct: (column: AnySQLiteColumn) => SQLCondition;
100
+ declare const sum: (column: AnySQLiteColumn) => SQLCondition;
101
+ declare const avg: (column: AnySQLiteColumn) => SQLCondition;
102
+ declare const max: (column: AnySQLiteColumn) => SQLCondition;
103
+ declare const min: (column: AnySQLiteColumn) => SQLCondition;
104
+ declare const sql: <T = unknown>(strings: TemplateStringsArray, ...values: any[]) => {
105
+ sql: string;
106
+ params: any[];
107
+ mapWith?: (value: any) => T;
108
+ };
88
109
  declare class BaseQueryBuilder {
89
110
  protected db: Database;
90
111
  protected query: string;
91
112
  protected params: any[];
92
113
  constructor(db: Database);
93
114
  where(condition: SQLCondition): this;
94
- orderBy(column: AnySQLiteColumn, direction?: "ASC" | "DESC"): this;
115
+ orderBy(column: AnySQLiteColumn | {
116
+ sql: string;
117
+ params: any[];
118
+ }, direction?: "ASC" | "DESC"): this;
95
119
  limit(count: number): this;
96
120
  offset(count: number): this;
97
121
  build(): {
@@ -102,31 +126,69 @@ declare class BaseQueryBuilder {
102
126
  declare class SelectQueryBuilder<TTable extends AnyTable, TSelectedColumns extends (keyof TTable["_"]["columns"])[] | undefined = undefined> extends BaseQueryBuilder {
103
127
  private table;
104
128
  private columns?;
129
+ private isDistinct;
130
+ private groupByColumns;
131
+ private havingCondition;
105
132
  constructor(db: Database, table: TTable, columns?: TSelectedColumns | undefined);
133
+ distinct(): this;
134
+ groupBy(...columns: AnySQLiteColumn[]): this;
135
+ having(condition: SQLCondition): this;
106
136
  execute(): Promise<TSelectedColumns extends (keyof TTable["_"]["columns"])[] ? Pick<InferSelectModel<TTable>, TSelectedColumns[number]>[] : InferSelectModel<TTable>[]>;
137
+ all(): Promise<TSelectedColumns extends (keyof TTable["_"]["columns"])[] ? Pick<InferSelectModel<TTable>, TSelectedColumns[number]>[] : InferSelectModel<TTable>[]>;
138
+ get(): Promise<TSelectedColumns extends (keyof TTable["_"]["columns"])[] ? Pick<InferSelectModel<TTable>, TSelectedColumns[number]> | undefined : InferSelectModel<TTable> | undefined>;
107
139
  }
108
140
  declare class InsertQueryBuilder<T extends AnyTable> extends BaseQueryBuilder {
109
141
  private table;
110
142
  private dataSets;
143
+ private returningColumns;
144
+ private onConflictAction;
145
+ private conflictTarget;
146
+ private updateSet;
111
147
  constructor(db: Database, table: T);
112
148
  values(data: Partial<InferInsertModel<T>> | Partial<InferInsertModel<T>>[]): this;
113
- execute(): Promise<number>;
149
+ returning(...columns: (keyof T["_"]["columns"])[]): this;
150
+ onConflictDoNothing(target?: AnySQLiteColumn | AnySQLiteColumn[]): this;
151
+ onConflictDoUpdate(config: {
152
+ target: AnySQLiteColumn | AnySQLiteColumn[];
153
+ set: Partial<InferInsertModel<T>>;
154
+ }): this;
155
+ private processDefaultValues;
156
+ private buildConflictClause;
157
+ execute(): Promise<T extends AnyTable ? (InferSelectModel<T> & Record<string, any>)[] : never>;
158
+ returningAll(): Promise<InferSelectModel<T>[]>;
114
159
  }
115
160
  declare class UpdateQueryBuilder<T extends AnyTable> extends BaseQueryBuilder {
116
161
  private table;
117
162
  private updateData;
163
+ private returningColumns;
118
164
  constructor(db: Database, table: T);
119
165
  set(data: Partial<InferInsertModel<T>>): this;
120
- build(): {
121
- sql: string;
122
- params: any[];
123
- };
124
- execute(): Promise<number>;
166
+ returning(...columns: (keyof T["_"]["columns"])[]): this;
167
+ private buildUpdateClause;
168
+ execute(): Promise<T extends AnyTable ? (InferSelectModel<T> & Record<string, any>)[] : never>;
169
+ returningAll(): Promise<InferSelectModel<T>[]>;
125
170
  }
126
171
  declare class DeleteQueryBuilder<T extends AnyTable> extends BaseQueryBuilder {
127
172
  private table;
173
+ private returningColumns;
128
174
  constructor(db: Database, table: T);
129
- execute(): Promise<number>;
175
+ returning(...columns: (keyof T["_"]["columns"])[]): this;
176
+ execute(): Promise<T extends AnyTable ? (InferSelectModel<T> & Record<string, any>)[] : never>;
177
+ returningAll(): Promise<InferSelectModel<T>[]>;
178
+ }
179
+ declare class WithQueryBuilder {
180
+ private db;
181
+ private ctes;
182
+ constructor(db: Database);
183
+ with(alias: string, query: {
184
+ sql: string;
185
+ params: any[];
186
+ }): this;
187
+ select<T extends AnyTable, C extends (keyof T["_"]["columns"])[] | undefined = undefined>(table: T, columns?: C): SelectQueryBuilder<T, C>;
188
+ insert<T extends AnyTable>(table: T): InsertQueryBuilder<T>;
189
+ update<T extends AnyTable>(table: T): UpdateQueryBuilder<T>;
190
+ delete<T extends AnyTable>(table: T): DeleteQueryBuilder<T>;
191
+ private applyWithClause;
130
192
  }
131
193
  declare class TauriORM {
132
194
  private db;
@@ -138,7 +200,14 @@ declare class TauriORM {
138
200
  insert<T extends AnyTable>(table: T): InsertQueryBuilder<T>;
139
201
  update<T extends AnyTable>(table: T): UpdateQueryBuilder<T>;
140
202
  delete<T extends AnyTable>(table: T): DeleteQueryBuilder<T>;
203
+ $with(alias: string): {
204
+ as: (query: {
205
+ sql: string;
206
+ params: any[];
207
+ }) => WithQueryBuilder;
208
+ };
141
209
  transaction<T>(callback: (tx: TauriORM) => Promise<T>): Promise<T>;
210
+ rollback(): never;
142
211
  private ensureSchemaMeta;
143
212
  private getSchemaMeta;
144
213
  private setSchemaMeta;
@@ -156,5 +225,7 @@ declare const relations: <T extends AnyTable, R extends Record<string, any>>(tab
156
225
  one: any;
157
226
  many: any;
158
227
  }) => R) => R;
228
+ declare const getTableColumns: <T extends AnyTable>(table: T) => Record<string, AnySQLiteColumn>;
229
+ declare const alias: <T extends AnyTable>(table: T, alias: string) => Table<T["_"]["columns"], T["_"]["name"]>;
159
230
 
160
- export { type AnySQLiteColumn, type AnyTable, type ColumnDataType, type ColumnOptions, DeleteQueryBuilder, type InferInsertModel, type InferSelectModel, InsertQueryBuilder, type Mode, type SQLCondition, SQLiteColumn, SelectQueryBuilder, Table, TauriORM, UpdateQueryBuilder, and, blob, boolean, eq, gt, gte, inArray, integer, isNotNull, isNull, like, lt, lte, or, real, relations, sqliteTable, text };
231
+ export { type AnySQLiteColumn, type AnyTable, type ColumnDataType, type ColumnOptions, DeleteQueryBuilder, type InferInsertModel, type InferSelectModel, InsertQueryBuilder, type Mode, type SQLCondition, SQLiteColumn, SelectQueryBuilder, Table, TauriORM, UpdateQueryBuilder, WithQueryBuilder, alias, and, asc, avg, blob, boolean, count, countDistinct, desc, eq, getTableColumns, gt, gte, inArray, integer, isNotNull, isNull, like, lt, lte, max, min, not, or, real, relations, sql, sqliteTable, sum, text };