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

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
@@ -1,9 +1,9 @@
1
1
  import Database from '@tauri-apps/plugin-sql';
2
2
 
3
- type ColumnDataType = "TEXT" | "INTEGER" | "REAL" | "BLOB" | "BOOLEAN";
4
- type Mode = "default" | "timestamp" | "timestamp_ms" | "json";
5
- type ColumnValueTypes<TType extends ColumnDataType, TMode extends Mode> = TType extends "TEXT" ? string : TType extends "INTEGER" ? TMode extends "timestamp" | "timestamp_ms" ? Date : number : TType extends "REAL" ? number : TType extends "BOOLEAN" ? boolean : TType extends "BLOB" ? Uint8Array : never;
6
- interface ColumnOptions<TData> {
3
+ type ColumnDataType = 'TEXT' | 'INTEGER' | 'REAL' | 'BLOB' | 'BOOLEAN' | 'NUMERIC';
4
+ type Mode = 'default' | 'timestamp' | 'timestamp_ms' | 'json' | 'boolean' | 'bigint';
5
+ type ColumnValueTypes<TType extends ColumnDataType, TMode extends Mode> = TType extends 'TEXT' ? TMode extends 'json' ? any : string : TType extends 'INTEGER' ? TMode extends 'timestamp' | 'timestamp_ms' ? Date : TMode extends 'boolean' ? boolean : number : TType extends 'REAL' ? number : TType extends 'BOOLEAN' ? boolean : TType extends 'BLOB' ? TMode extends 'json' ? any : TMode extends 'bigint' ? bigint : Uint8Array : TType extends 'NUMERIC' ? TMode extends 'bigint' ? bigint : number : never;
6
+ interface ColumnOptions<TData, TEnum extends readonly string[] = readonly string[]> {
7
7
  notNull?: boolean;
8
8
  default?: TData;
9
9
  $defaultFn?: () => TData;
@@ -16,14 +16,15 @@ interface ColumnOptions<TData> {
16
16
  };
17
17
  mode?: Mode;
18
18
  $onUpdateFn?: () => TData;
19
+ enum?: TEnum;
19
20
  }
20
- type ExtractColumnType<T extends AnySQLiteColumn> = T extends SQLiteColumn<infer _, infer TType, infer TMode, infer TNotNull, infer THasDefault> ? THasDefault extends true ? TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null | undefined : TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null | undefined : never;
21
- type AnySQLiteColumn = SQLiteColumn<any, any, any, any, any, any>;
21
+ type ExtractColumnType<T extends AnySQLiteColumn> = T['_']['customType'] extends never ? T['_']['enum'] extends readonly string[] ? T['_']['enum'][number] : T extends SQLiteColumn<infer _, infer TType, infer TMode, infer TNotNull, infer THasDefault> ? THasDefault extends true ? TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null | undefined : TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null | undefined : never : T['_']['customType'];
22
+ type AnySQLiteColumn = SQLiteColumn<any, any, any, any, any, any, any, any>;
22
23
  type AnyTable = Table<Record<string, AnySQLiteColumn>, string>;
23
24
  type InferSelectModel<T extends AnyTable> = {
24
- [K in keyof T["_"]["columns"]]: ExtractColumnType<T["_"]["columns"][K]>;
25
+ [K in keyof T['_']['columns']]: ExtractColumnType<T['_']['columns'][K]>;
25
26
  };
26
- type RelationType = "one" | "many";
27
+ type RelationType = 'one' | 'many';
27
28
  interface RelationConfig {
28
29
  type: RelationType;
29
30
  foreignTable: AnyTable;
@@ -138,9 +139,9 @@ type RelationsBuilder = {
138
139
  many: <U extends AnyTable>(table: U) => ManyRelation<U>;
139
140
  };
140
141
 
141
- declare class SQLiteColumn<TName extends string = string, TType extends ColumnDataType = ColumnDataType, TMode extends Mode = 'default', TNotNull extends boolean = false, THasDefault extends boolean = false, TAutoincrement extends boolean = false> {
142
+ declare class SQLiteColumn<TName extends string = string, TType extends ColumnDataType = ColumnDataType, TMode extends Mode = 'default', TNotNull extends boolean = false, THasDefault extends boolean = false, TAutoincrement extends boolean = false, TEnum extends readonly string[] = never, TCustomType = never> {
142
143
  type: TType;
143
- options: ColumnOptions<ColumnValueTypes<TType, TMode>>;
144
+ options: ColumnOptions<ColumnValueTypes<TType, TMode>, TEnum>;
144
145
  _: {
145
146
  name: TName;
146
147
  dataType: TType;
@@ -148,17 +149,20 @@ declare class SQLiteColumn<TName extends string = string, TType extends ColumnDa
148
149
  notNull: TNotNull;
149
150
  hasDefault: THasDefault;
150
151
  autoincrement: TAutoincrement;
152
+ enum: TEnum;
153
+ customType: TCustomType;
151
154
  };
152
- constructor(name: TName, type: TType, options?: ColumnOptions<ColumnValueTypes<TType, TMode>>, mode?: TMode);
153
- notNull(): SQLiteColumn<TName, TType, TMode, true, THasDefault, TAutoincrement>;
154
- default(value: ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, true, TAutoincrement>;
155
- $defaultFn(fn: () => ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, true, TAutoincrement>;
156
- primaryKey(): SQLiteColumn<TName, TType, TMode, true, THasDefault, TAutoincrement>;
157
- autoincrement(): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, true>;
158
- unique(): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
159
- references<T extends AnyTable, K extends keyof T['_']['columns'] & string>(ref: T, column: K): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
160
- $onUpdateFn(fn: () => ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
161
- as(alias: string): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
155
+ constructor(name: TName, type: TType, options?: ColumnOptions<ColumnValueTypes<TType, TMode>, TEnum>, mode?: TMode);
156
+ notNull(): SQLiteColumn<TName, TType, TMode, true, THasDefault, TAutoincrement, TEnum, TCustomType>;
157
+ default(value: ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, true, TAutoincrement, TEnum, TCustomType>;
158
+ $defaultFn(fn: () => ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, true, TAutoincrement, TEnum, TCustomType>;
159
+ primaryKey(): SQLiteColumn<TName, TType, TMode, true, THasDefault, TAutoincrement, TEnum, TCustomType>;
160
+ autoincrement(): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, true, TEnum, TCustomType>;
161
+ unique(): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement, TEnum, TCustomType>;
162
+ references<T extends AnyTable, K extends keyof T['_']['columns'] & string>(ref: T, column: K): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement, TEnum, TCustomType>;
163
+ $onUpdateFn(fn: () => ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement, TEnum, TCustomType>;
164
+ $type<T>(): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement, TEnum, T>;
165
+ as(alias: string): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement, TEnum, TCustomType>;
162
166
  }
163
167
  type IsOptionalOnInsert<C extends AnySQLiteColumn> = C['_']['notNull'] extends false ? true : C['_']['hasDefault'] extends true ? true : C['_']['autoincrement'] extends true ? true : false;
164
168
  type OptionalColumns<TColumns extends Record<string, AnySQLiteColumn>> = {
@@ -269,12 +273,21 @@ declare const avg: (column: AnySQLiteColumn) => SQLCondition;
269
273
  declare const max: (column: AnySQLiteColumn) => SQLCondition;
270
274
  declare const min: (column: AnySQLiteColumn) => SQLCondition;
271
275
 
272
- declare const text: <TName extends string>(name: TName) => SQLiteColumn<TName, "TEXT", "default", false, false, false>;
276
+ declare const text: <TName extends string, TEnum extends readonly string[]>(name: TName, config?: {
277
+ mode?: "json";
278
+ enum?: TEnum;
279
+ }) => SQLiteColumn<TName, "TEXT", "json", false, false, false, TEnum, never>;
273
280
  declare const integer: <TName extends string, TMode extends Mode = "default">(name: TName, config?: {
274
281
  mode?: TMode;
275
- }) => SQLiteColumn<TName, "INTEGER", "default" | TMode, false, false, false>;
276
- declare const real: <TName extends string>(name: TName) => SQLiteColumn<TName, "REAL", "default", false, false, false>;
277
- declare const blob: <TName extends string>(name: TName) => SQLiteColumn<TName, "BLOB", "default", false, false, false>;
278
- declare const boolean: <TName extends string>(name: TName) => SQLiteColumn<TName, "BOOLEAN", "default", false, false, false>;
282
+ }) => SQLiteColumn<TName, "INTEGER", "default" | TMode, false, false, false, never, never>;
283
+ declare const real: <TName extends string>(name: TName) => SQLiteColumn<TName, "REAL", "default", false, false, false, never, never>;
284
+ declare const blob: <TName extends string>(name: TName, config?: {
285
+ mode: "json" | "bigint";
286
+ }) => SQLiteColumn<TName, "BLOB", "bigint" | "json", false, false, false, never, never>;
287
+ declare const boolean: <TName extends string>(name: TName) => SQLiteColumn<TName, "BOOLEAN", "default", false, false, false, never, never>;
288
+ declare const numeric: <TName extends string>(name: TName, config?: {
289
+ mode?: "bigint";
290
+ }) => SQLiteColumn<TName, "NUMERIC", "bigint", false, false, false, never, never>;
291
+ declare const enumType: <TName extends string, TValues extends readonly [string, ...string[]]>(name: TName, values: TValues) => SQLiteColumn<TName, "TEXT", "json", false, false, false, TValues, never>;
279
292
 
280
- export { type AnySQLiteColumn, type AnyTable, BaseQueryBuilder, type ColumnDataType, type ColumnOptions, type ColumnValueTypes, DeleteQueryBuilder, type ExtractColumnType, type InferInsertModel, type InferSelectModel, InsertQueryBuilder, ManyRelation, type Mode, OneRelation, Relation, type RelationConfig, type RelationType, type RelationsBuilder, 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 };
293
+ export { type AnySQLiteColumn, type AnyTable, BaseQueryBuilder, type ColumnDataType, type ColumnOptions, type ColumnValueTypes, DeleteQueryBuilder, type ExtractColumnType, type InferInsertModel, type InferSelectModel, InsertQueryBuilder, ManyRelation, type Mode, OneRelation, Relation, type RelationConfig, type RelationType, type RelationsBuilder, type SQLCondition, SQLiteColumn, SelectQueryBuilder, Table, TauriORM, UpdateQueryBuilder, WithQueryBuilder, alias, and, asc, avg, blob, boolean, count, countDistinct, desc, enumType, eq, getTableColumns, gt, gte, inArray, integer, isNotNull, isNull, like, lt, lte, max, min, not, numeric, or, real, relations, sql, sqliteTable, sum, text };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import Database from '@tauri-apps/plugin-sql';
2
2
 
3
- type ColumnDataType = "TEXT" | "INTEGER" | "REAL" | "BLOB" | "BOOLEAN";
4
- type Mode = "default" | "timestamp" | "timestamp_ms" | "json";
5
- type ColumnValueTypes<TType extends ColumnDataType, TMode extends Mode> = TType extends "TEXT" ? string : TType extends "INTEGER" ? TMode extends "timestamp" | "timestamp_ms" ? Date : number : TType extends "REAL" ? number : TType extends "BOOLEAN" ? boolean : TType extends "BLOB" ? Uint8Array : never;
6
- interface ColumnOptions<TData> {
3
+ type ColumnDataType = 'TEXT' | 'INTEGER' | 'REAL' | 'BLOB' | 'BOOLEAN' | 'NUMERIC';
4
+ type Mode = 'default' | 'timestamp' | 'timestamp_ms' | 'json' | 'boolean' | 'bigint';
5
+ type ColumnValueTypes<TType extends ColumnDataType, TMode extends Mode> = TType extends 'TEXT' ? TMode extends 'json' ? any : string : TType extends 'INTEGER' ? TMode extends 'timestamp' | 'timestamp_ms' ? Date : TMode extends 'boolean' ? boolean : number : TType extends 'REAL' ? number : TType extends 'BOOLEAN' ? boolean : TType extends 'BLOB' ? TMode extends 'json' ? any : TMode extends 'bigint' ? bigint : Uint8Array : TType extends 'NUMERIC' ? TMode extends 'bigint' ? bigint : number : never;
6
+ interface ColumnOptions<TData, TEnum extends readonly string[] = readonly string[]> {
7
7
  notNull?: boolean;
8
8
  default?: TData;
9
9
  $defaultFn?: () => TData;
@@ -16,14 +16,15 @@ interface ColumnOptions<TData> {
16
16
  };
17
17
  mode?: Mode;
18
18
  $onUpdateFn?: () => TData;
19
+ enum?: TEnum;
19
20
  }
20
- type ExtractColumnType<T extends AnySQLiteColumn> = T extends SQLiteColumn<infer _, infer TType, infer TMode, infer TNotNull, infer THasDefault> ? THasDefault extends true ? TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null | undefined : TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null | undefined : never;
21
- type AnySQLiteColumn = SQLiteColumn<any, any, any, any, any, any>;
21
+ type ExtractColumnType<T extends AnySQLiteColumn> = T['_']['customType'] extends never ? T['_']['enum'] extends readonly string[] ? T['_']['enum'][number] : T extends SQLiteColumn<infer _, infer TType, infer TMode, infer TNotNull, infer THasDefault> ? THasDefault extends true ? TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null | undefined : TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null | undefined : never : T['_']['customType'];
22
+ type AnySQLiteColumn = SQLiteColumn<any, any, any, any, any, any, any, any>;
22
23
  type AnyTable = Table<Record<string, AnySQLiteColumn>, string>;
23
24
  type InferSelectModel<T extends AnyTable> = {
24
- [K in keyof T["_"]["columns"]]: ExtractColumnType<T["_"]["columns"][K]>;
25
+ [K in keyof T['_']['columns']]: ExtractColumnType<T['_']['columns'][K]>;
25
26
  };
26
- type RelationType = "one" | "many";
27
+ type RelationType = 'one' | 'many';
27
28
  interface RelationConfig {
28
29
  type: RelationType;
29
30
  foreignTable: AnyTable;
@@ -138,9 +139,9 @@ type RelationsBuilder = {
138
139
  many: <U extends AnyTable>(table: U) => ManyRelation<U>;
139
140
  };
140
141
 
141
- declare class SQLiteColumn<TName extends string = string, TType extends ColumnDataType = ColumnDataType, TMode extends Mode = 'default', TNotNull extends boolean = false, THasDefault extends boolean = false, TAutoincrement extends boolean = false> {
142
+ declare class SQLiteColumn<TName extends string = string, TType extends ColumnDataType = ColumnDataType, TMode extends Mode = 'default', TNotNull extends boolean = false, THasDefault extends boolean = false, TAutoincrement extends boolean = false, TEnum extends readonly string[] = never, TCustomType = never> {
142
143
  type: TType;
143
- options: ColumnOptions<ColumnValueTypes<TType, TMode>>;
144
+ options: ColumnOptions<ColumnValueTypes<TType, TMode>, TEnum>;
144
145
  _: {
145
146
  name: TName;
146
147
  dataType: TType;
@@ -148,17 +149,20 @@ declare class SQLiteColumn<TName extends string = string, TType extends ColumnDa
148
149
  notNull: TNotNull;
149
150
  hasDefault: THasDefault;
150
151
  autoincrement: TAutoincrement;
152
+ enum: TEnum;
153
+ customType: TCustomType;
151
154
  };
152
- constructor(name: TName, type: TType, options?: ColumnOptions<ColumnValueTypes<TType, TMode>>, mode?: TMode);
153
- notNull(): SQLiteColumn<TName, TType, TMode, true, THasDefault, TAutoincrement>;
154
- default(value: ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, true, TAutoincrement>;
155
- $defaultFn(fn: () => ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, true, TAutoincrement>;
156
- primaryKey(): SQLiteColumn<TName, TType, TMode, true, THasDefault, TAutoincrement>;
157
- autoincrement(): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, true>;
158
- unique(): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
159
- references<T extends AnyTable, K extends keyof T['_']['columns'] & string>(ref: T, column: K): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
160
- $onUpdateFn(fn: () => ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
161
- as(alias: string): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement>;
155
+ constructor(name: TName, type: TType, options?: ColumnOptions<ColumnValueTypes<TType, TMode>, TEnum>, mode?: TMode);
156
+ notNull(): SQLiteColumn<TName, TType, TMode, true, THasDefault, TAutoincrement, TEnum, TCustomType>;
157
+ default(value: ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, true, TAutoincrement, TEnum, TCustomType>;
158
+ $defaultFn(fn: () => ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, true, TAutoincrement, TEnum, TCustomType>;
159
+ primaryKey(): SQLiteColumn<TName, TType, TMode, true, THasDefault, TAutoincrement, TEnum, TCustomType>;
160
+ autoincrement(): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, true, TEnum, TCustomType>;
161
+ unique(): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement, TEnum, TCustomType>;
162
+ references<T extends AnyTable, K extends keyof T['_']['columns'] & string>(ref: T, column: K): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement, TEnum, TCustomType>;
163
+ $onUpdateFn(fn: () => ColumnValueTypes<TType, TMode>): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement, TEnum, TCustomType>;
164
+ $type<T>(): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement, TEnum, T>;
165
+ as(alias: string): SQLiteColumn<TName, TType, TMode, TNotNull, THasDefault, TAutoincrement, TEnum, TCustomType>;
162
166
  }
163
167
  type IsOptionalOnInsert<C extends AnySQLiteColumn> = C['_']['notNull'] extends false ? true : C['_']['hasDefault'] extends true ? true : C['_']['autoincrement'] extends true ? true : false;
164
168
  type OptionalColumns<TColumns extends Record<string, AnySQLiteColumn>> = {
@@ -269,12 +273,21 @@ declare const avg: (column: AnySQLiteColumn) => SQLCondition;
269
273
  declare const max: (column: AnySQLiteColumn) => SQLCondition;
270
274
  declare const min: (column: AnySQLiteColumn) => SQLCondition;
271
275
 
272
- declare const text: <TName extends string>(name: TName) => SQLiteColumn<TName, "TEXT", "default", false, false, false>;
276
+ declare const text: <TName extends string, TEnum extends readonly string[]>(name: TName, config?: {
277
+ mode?: "json";
278
+ enum?: TEnum;
279
+ }) => SQLiteColumn<TName, "TEXT", "json", false, false, false, TEnum, never>;
273
280
  declare const integer: <TName extends string, TMode extends Mode = "default">(name: TName, config?: {
274
281
  mode?: TMode;
275
- }) => SQLiteColumn<TName, "INTEGER", "default" | TMode, false, false, false>;
276
- declare const real: <TName extends string>(name: TName) => SQLiteColumn<TName, "REAL", "default", false, false, false>;
277
- declare const blob: <TName extends string>(name: TName) => SQLiteColumn<TName, "BLOB", "default", false, false, false>;
278
- declare const boolean: <TName extends string>(name: TName) => SQLiteColumn<TName, "BOOLEAN", "default", false, false, false>;
282
+ }) => SQLiteColumn<TName, "INTEGER", "default" | TMode, false, false, false, never, never>;
283
+ declare const real: <TName extends string>(name: TName) => SQLiteColumn<TName, "REAL", "default", false, false, false, never, never>;
284
+ declare const blob: <TName extends string>(name: TName, config?: {
285
+ mode: "json" | "bigint";
286
+ }) => SQLiteColumn<TName, "BLOB", "bigint" | "json", false, false, false, never, never>;
287
+ declare const boolean: <TName extends string>(name: TName) => SQLiteColumn<TName, "BOOLEAN", "default", false, false, false, never, never>;
288
+ declare const numeric: <TName extends string>(name: TName, config?: {
289
+ mode?: "bigint";
290
+ }) => SQLiteColumn<TName, "NUMERIC", "bigint", false, false, false, never, never>;
291
+ declare const enumType: <TName extends string, TValues extends readonly [string, ...string[]]>(name: TName, values: TValues) => SQLiteColumn<TName, "TEXT", "json", false, false, false, TValues, never>;
279
292
 
280
- export { type AnySQLiteColumn, type AnyTable, BaseQueryBuilder, type ColumnDataType, type ColumnOptions, type ColumnValueTypes, DeleteQueryBuilder, type ExtractColumnType, type InferInsertModel, type InferSelectModel, InsertQueryBuilder, ManyRelation, type Mode, OneRelation, Relation, type RelationConfig, type RelationType, type RelationsBuilder, 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 };
293
+ export { type AnySQLiteColumn, type AnyTable, BaseQueryBuilder, type ColumnDataType, type ColumnOptions, type ColumnValueTypes, DeleteQueryBuilder, type ExtractColumnType, type InferInsertModel, type InferSelectModel, InsertQueryBuilder, ManyRelation, type Mode, OneRelation, Relation, type RelationConfig, type RelationType, type RelationsBuilder, type SQLCondition, SQLiteColumn, SelectQueryBuilder, Table, TauriORM, UpdateQueryBuilder, WithQueryBuilder, alias, and, asc, avg, blob, boolean, count, countDistinct, desc, enumType, eq, getTableColumns, gt, gte, inArray, integer, isNotNull, isNull, like, lt, lte, max, min, not, numeric, or, real, relations, sql, sqliteTable, sum, text };
package/dist/index.js CHANGED
@@ -41,6 +41,7 @@ __export(index_exports, {
41
41
  count: () => count,
42
42
  countDistinct: () => countDistinct,
43
43
  desc: () => desc,
44
+ enumType: () => enumType,
44
45
  eq: () => eq,
45
46
  getTableColumns: () => getTableColumns,
46
47
  gt: () => gt,
@@ -55,6 +56,7 @@ __export(index_exports, {
55
56
  max: () => max,
56
57
  min: () => min,
57
58
  not: () => not,
59
+ numeric: () => numeric,
58
60
  or: () => or,
59
61
  real: () => real,
60
62
  relations: () => relations,
@@ -667,7 +669,9 @@ var SQLiteColumn = class _SQLiteColumn {
667
669
  mode: mode || "default",
668
670
  notNull: options.notNull ?? false,
669
671
  hasDefault: options.default !== void 0 || options.$defaultFn !== void 0,
670
- autoincrement: options.autoincrement ?? false
672
+ autoincrement: options.autoincrement ?? false,
673
+ enum: options.enum,
674
+ customType: void 0
671
675
  };
672
676
  }
673
677
  _;
@@ -711,6 +715,9 @@ var SQLiteColumn = class _SQLiteColumn {
711
715
  $onUpdateFn(fn) {
712
716
  return new _SQLiteColumn(this._.name, this.type, { ...this.options, $onUpdateFn: fn }, this._.mode);
713
717
  }
718
+ $type() {
719
+ return this;
720
+ }
714
721
  as(alias2) {
715
722
  return this;
716
723
  }
@@ -977,11 +984,13 @@ var alias = (table, alias2) => {
977
984
  };
978
985
 
979
986
  // src/column-helpers.ts
980
- var text = (name) => new SQLiteColumn(name, "TEXT");
987
+ var text = (name, config) => new SQLiteColumn(name, "TEXT", config, config?.mode);
981
988
  var integer = (name, config) => new SQLiteColumn(name, "INTEGER", {}, config?.mode || "default");
982
989
  var real = (name) => new SQLiteColumn(name, "REAL");
983
- var blob = (name) => new SQLiteColumn(name, "BLOB");
990
+ var blob = (name, config) => new SQLiteColumn(name, "BLOB", {}, config?.mode);
984
991
  var boolean = (name) => new SQLiteColumn(name, "BOOLEAN");
992
+ var numeric = (name, config) => new SQLiteColumn(name, "NUMERIC", {}, config?.mode);
993
+ var enumType = (name, values) => text(name, { enum: values });
985
994
  // Annotate the CommonJS export names for ESM import in node:
986
995
  0 && (module.exports = {
987
996
  BaseQueryBuilder,
@@ -1005,6 +1014,7 @@ var boolean = (name) => new SQLiteColumn(name, "BOOLEAN");
1005
1014
  count,
1006
1015
  countDistinct,
1007
1016
  desc,
1017
+ enumType,
1008
1018
  eq,
1009
1019
  getTableColumns,
1010
1020
  gt,
@@ -1019,6 +1029,7 @@ var boolean = (name) => new SQLiteColumn(name, "BOOLEAN");
1019
1029
  max,
1020
1030
  min,
1021
1031
  not,
1032
+ numeric,
1022
1033
  or,
1023
1034
  real,
1024
1035
  relations,
package/dist/index.mjs CHANGED
@@ -600,7 +600,9 @@ var SQLiteColumn = class _SQLiteColumn {
600
600
  mode: mode || "default",
601
601
  notNull: options.notNull ?? false,
602
602
  hasDefault: options.default !== void 0 || options.$defaultFn !== void 0,
603
- autoincrement: options.autoincrement ?? false
603
+ autoincrement: options.autoincrement ?? false,
604
+ enum: options.enum,
605
+ customType: void 0
604
606
  };
605
607
  }
606
608
  _;
@@ -644,6 +646,9 @@ var SQLiteColumn = class _SQLiteColumn {
644
646
  $onUpdateFn(fn) {
645
647
  return new _SQLiteColumn(this._.name, this.type, { ...this.options, $onUpdateFn: fn }, this._.mode);
646
648
  }
649
+ $type() {
650
+ return this;
651
+ }
647
652
  as(alias2) {
648
653
  return this;
649
654
  }
@@ -910,11 +915,13 @@ var alias = (table, alias2) => {
910
915
  };
911
916
 
912
917
  // src/column-helpers.ts
913
- var text = (name) => new SQLiteColumn(name, "TEXT");
918
+ var text = (name, config) => new SQLiteColumn(name, "TEXT", config, config?.mode);
914
919
  var integer = (name, config) => new SQLiteColumn(name, "INTEGER", {}, config?.mode || "default");
915
920
  var real = (name) => new SQLiteColumn(name, "REAL");
916
- var blob = (name) => new SQLiteColumn(name, "BLOB");
921
+ var blob = (name, config) => new SQLiteColumn(name, "BLOB", {}, config?.mode);
917
922
  var boolean = (name) => new SQLiteColumn(name, "BOOLEAN");
923
+ var numeric = (name, config) => new SQLiteColumn(name, "NUMERIC", {}, config?.mode);
924
+ var enumType = (name, values) => text(name, { enum: values });
918
925
  export {
919
926
  BaseQueryBuilder,
920
927
  DeleteQueryBuilder,
@@ -937,6 +944,7 @@ export {
937
944
  count,
938
945
  countDistinct,
939
946
  desc,
947
+ enumType,
940
948
  eq,
941
949
  getTableColumns,
942
950
  gt,
@@ -951,6 +959,7 @@ export {
951
959
  max,
952
960
  min,
953
961
  not,
962
+ numeric,
954
963
  or,
955
964
  real,
956
965
  relations,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@type32/tauri-sqlite-orm",
3
- "version": "0.1.18-19",
3
+ "version": "0.1.18-20",
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",