@type32/tauri-sqlite-orm 0.2.4 → 0.2.5
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/README.md +1 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,6 +5,7 @@ A Drizzle-like TypeScript ORM tailored for Tauri v2's `@tauri-apps/plugin-sql` (
|
|
|
5
5
|
### Features
|
|
6
6
|
|
|
7
7
|
- **Drizzle-like Schema:** Define your database schema using a familiar, chainable API.
|
|
8
|
+
- **Strict Type Inference:** Full TypeScript type safety with no `any` types - nullable columns, custom types, and required/optional fields are accurately inferred.
|
|
8
9
|
- **Type-Safe Query Builder:** Build SQL queries with TypeScript, ensuring type safety and autocompletion.
|
|
9
10
|
- **Relations Support:** Define and query one-to-one, one-to-many, and many-to-many relationships between tables.
|
|
10
11
|
- **Nested Includes:** Load relations of relations with intuitive nested syntax.
|
package/dist/index.d.mts
CHANGED
|
@@ -2,7 +2,7 @@ import Database from '@tauri-apps/plugin-sql';
|
|
|
2
2
|
|
|
3
3
|
type ColumnDataType = 'TEXT' | 'INTEGER' | 'REAL' | 'BLOB' | 'BOOLEAN' | 'NUMERIC';
|
|
4
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' ?
|
|
5
|
+
type ColumnValueTypes<TType extends ColumnDataType, TMode extends Mode> = TType extends 'TEXT' ? TMode extends 'json' ? unknown : 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' ? unknown : TMode extends 'bigint' ? bigint : Uint8Array : TType extends 'NUMERIC' ? TMode extends 'bigint' ? bigint : number : never;
|
|
6
6
|
interface ColumnOptions<TData, TEnum extends readonly string[] = readonly string[]> {
|
|
7
7
|
notNull?: boolean;
|
|
8
8
|
default?: TData;
|
|
@@ -18,7 +18,7 @@ interface ColumnOptions<TData, TEnum extends readonly string[] = readonly string
|
|
|
18
18
|
$onUpdateFn?: () => TData;
|
|
19
19
|
enum?: TEnum;
|
|
20
20
|
}
|
|
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> ?
|
|
21
|
+
type ExtractColumnType<T extends AnySQLiteColumn> = T['_']['customType'] extends never ? T['_']['enum'] extends readonly string[] ? T['_']['notNull'] extends true ? T['_']['enum'][number] : T['_']['enum'][number] | null : T extends SQLiteColumn<infer _, infer TType, infer TMode, infer TNotNull, infer THasDefault> ? TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null : never : T['_']['notNull'] extends true ? T['_']['customType'] : T['_']['customType'] | null;
|
|
22
22
|
type AnySQLiteColumn = SQLiteColumn<any, any, any, any, any, any, any, any>;
|
|
23
23
|
type AnyTable = Table<Record<string, AnySQLiteColumn>, string>;
|
|
24
24
|
type InferSelectModel<T extends AnyTable> = {
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import Database from '@tauri-apps/plugin-sql';
|
|
|
2
2
|
|
|
3
3
|
type ColumnDataType = 'TEXT' | 'INTEGER' | 'REAL' | 'BLOB' | 'BOOLEAN' | 'NUMERIC';
|
|
4
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' ?
|
|
5
|
+
type ColumnValueTypes<TType extends ColumnDataType, TMode extends Mode> = TType extends 'TEXT' ? TMode extends 'json' ? unknown : 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' ? unknown : TMode extends 'bigint' ? bigint : Uint8Array : TType extends 'NUMERIC' ? TMode extends 'bigint' ? bigint : number : never;
|
|
6
6
|
interface ColumnOptions<TData, TEnum extends readonly string[] = readonly string[]> {
|
|
7
7
|
notNull?: boolean;
|
|
8
8
|
default?: TData;
|
|
@@ -18,7 +18,7 @@ interface ColumnOptions<TData, TEnum extends readonly string[] = readonly string
|
|
|
18
18
|
$onUpdateFn?: () => TData;
|
|
19
19
|
enum?: TEnum;
|
|
20
20
|
}
|
|
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> ?
|
|
21
|
+
type ExtractColumnType<T extends AnySQLiteColumn> = T['_']['customType'] extends never ? T['_']['enum'] extends readonly string[] ? T['_']['notNull'] extends true ? T['_']['enum'][number] : T['_']['enum'][number] | null : T extends SQLiteColumn<infer _, infer TType, infer TMode, infer TNotNull, infer THasDefault> ? TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null : never : T['_']['notNull'] extends true ? T['_']['customType'] : T['_']['customType'] | null;
|
|
22
22
|
type AnySQLiteColumn = SQLiteColumn<any, any, any, any, any, any, any, any>;
|
|
23
23
|
type AnyTable = Table<Record<string, AnySQLiteColumn>, string>;
|
|
24
24
|
type InferSelectModel<T extends AnyTable> = {
|