@type32/tauri-sqlite-orm 0.2.6 → 0.2.8
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 +2 -0
- package/dist/index.d.mts +25 -16
- package/dist/index.d.ts +25 -16
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -19,6 +19,8 @@ A Drizzle-like TypeScript ORM tailored for Tauri v2's `@tauri-apps/plugin-sql` (
|
|
|
19
19
|
- **Simplified Migrations:** Keep your database schema in sync with your application's models using automatic schema detection and migration tools.
|
|
20
20
|
- **Lightweight & Performant:** Designed to be a thin layer over the Tauri SQL plugin, ensuring minimal overhead.
|
|
21
21
|
|
|
22
|
+
Also, bun is the preferred package manager for developing this library, if you want to contribute.
|
|
23
|
+
|
|
22
24
|
### Installation
|
|
23
25
|
|
|
24
26
|
```bash
|
package/dist/index.d.mts
CHANGED
|
@@ -18,7 +18,11 @@ 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
|
|
21
|
+
type ExtractColumnType<T extends AnySQLiteColumn> = T extends SQLiteColumn<infer _, infer TType, infer TMode, infer TNotNull, infer THasDefault, infer TAutoincrement, infer TEnum, infer TCustomType> ? [
|
|
22
|
+
TCustomType
|
|
23
|
+
] extends [never] ? [
|
|
24
|
+
TEnum
|
|
25
|
+
] extends [never] ? TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null : TNotNull extends true ? TEnum[number] : TEnum[number] | null : TNotNull extends true ? TCustomType : TCustomType | null : never;
|
|
22
26
|
type AnySQLiteColumn = SQLiteColumn<any, any, any, any, any, any, any, any>;
|
|
23
27
|
type AnyTable = Table<Record<string, AnySQLiteColumn>, string>;
|
|
24
28
|
type InferSelectModel<T extends AnyTable> = {
|
|
@@ -231,10 +235,15 @@ type OptionalColumns<TColumns extends Record<string, AnySQLiteColumn>> = {
|
|
|
231
235
|
type RequiredColumns<TColumns extends Record<string, AnySQLiteColumn>> = {
|
|
232
236
|
[K in keyof TColumns]: IsOptionalOnInsert<TColumns[K]> extends true ? never : K;
|
|
233
237
|
}[keyof TColumns];
|
|
238
|
+
type ExtractInsertColumnType<T extends AnySQLiteColumn> = T extends SQLiteColumn<infer _, infer TType, infer TMode, infer TNotNull, infer THasDefault, infer TAutoincrement, infer TEnum, infer TCustomType> ? [
|
|
239
|
+
TCustomType
|
|
240
|
+
] extends [never] ? [
|
|
241
|
+
TEnum
|
|
242
|
+
] extends [never] ? TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null : TNotNull extends true ? TEnum[number] : TEnum[number] | null : TNotNull extends true ? TCustomType : TCustomType | null : never;
|
|
234
243
|
type InferInsertModel<T extends AnyTable> = {
|
|
235
|
-
[K in RequiredColumns<T['_']['columns']>]:
|
|
244
|
+
[K in RequiredColumns<T['_']['columns']>]: ExtractInsertColumnType<T['_']['columns'][K]>;
|
|
236
245
|
} & {
|
|
237
|
-
[K in OptionalColumns<T['_']['columns']>]?:
|
|
246
|
+
[K in OptionalColumns<T['_']['columns']>]?: ExtractInsertColumnType<T['_']['columns'][K]>;
|
|
238
247
|
};
|
|
239
248
|
declare class Table<TColumns extends Record<string, AnySQLiteColumn>, TTableName extends string> {
|
|
240
249
|
_: {
|
|
@@ -396,22 +405,22 @@ declare const as: <T>(aggregate: SQLAggregate<T>, alias: string) => SQLAggregate
|
|
|
396
405
|
declare const subquery: <T extends AnyTable>(query: SelectQueryBuilder<T, any>) => SQLSubquery;
|
|
397
406
|
declare const scalarSubquery: <T extends AnyTable>(query: SelectQueryBuilder<T, any>) => SQLSubquery;
|
|
398
407
|
|
|
399
|
-
declare const text: <TName extends string, TEnum extends readonly string[]>(name: TName, config?: {
|
|
400
|
-
mode?:
|
|
408
|
+
declare const text: <TName extends string, TMode extends "default" | "json" = "default", TEnum extends readonly string[] = never>(name: TName, config?: {
|
|
409
|
+
mode?: TMode;
|
|
401
410
|
enum?: TEnum;
|
|
402
|
-
}) => SQLiteColumn<TName, "TEXT",
|
|
403
|
-
declare const integer: <TName extends string>(name: TName, config?: {
|
|
404
|
-
mode?:
|
|
405
|
-
}) => SQLiteColumn<TName, "INTEGER",
|
|
411
|
+
}) => SQLiteColumn<TName, "TEXT", TMode, false, false, false, TEnum, never>;
|
|
412
|
+
declare const integer: <TName extends string, TMode extends Mode = "default">(name: TName, config?: {
|
|
413
|
+
mode?: TMode;
|
|
414
|
+
}) => SQLiteColumn<TName, "INTEGER", TMode, false, false, false, never, never>;
|
|
406
415
|
declare const real: <TName extends string>(name: TName) => SQLiteColumn<TName, "REAL", "default", false, false, false, never, never>;
|
|
407
|
-
declare const blob: <TName extends string>(name: TName, config?: {
|
|
408
|
-
mode
|
|
409
|
-
}) => SQLiteColumn<TName, "BLOB",
|
|
416
|
+
declare const blob: <TName extends string, TMode extends "json" | "bigint" | "default" = "default">(name: TName, config?: {
|
|
417
|
+
mode?: TMode;
|
|
418
|
+
}) => SQLiteColumn<TName, "BLOB", TMode, false, false, false, never, never>;
|
|
410
419
|
declare const boolean: <TName extends string>(name: TName) => SQLiteColumn<TName, "BOOLEAN", "default", false, false, false, never, never>;
|
|
411
|
-
declare const numeric: <TName extends string>(name: TName, config?: {
|
|
412
|
-
mode?:
|
|
413
|
-
}) => SQLiteColumn<TName, "NUMERIC",
|
|
414
|
-
declare const enumType: <TName extends string, TValues extends readonly [string, ...string[]]>(name: TName, values: TValues) => SQLiteColumn<TName, "TEXT",
|
|
420
|
+
declare const numeric: <TName extends string, TMode extends "bigint" | "default" = "default">(name: TName, config?: {
|
|
421
|
+
mode?: TMode;
|
|
422
|
+
}) => SQLiteColumn<TName, "NUMERIC", TMode, false, false, false, never, never>;
|
|
423
|
+
declare const enumType: <TName extends string, TValues extends readonly [string, ...string[]]>(name: TName, values: TValues) => SQLiteColumn<TName, "TEXT", "default", false, false, false, TValues, never>;
|
|
415
424
|
|
|
416
425
|
declare class TauriORMError extends Error {
|
|
417
426
|
constructor(message: string);
|
package/dist/index.d.ts
CHANGED
|
@@ -18,7 +18,11 @@ 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
|
|
21
|
+
type ExtractColumnType<T extends AnySQLiteColumn> = T extends SQLiteColumn<infer _, infer TType, infer TMode, infer TNotNull, infer THasDefault, infer TAutoincrement, infer TEnum, infer TCustomType> ? [
|
|
22
|
+
TCustomType
|
|
23
|
+
] extends [never] ? [
|
|
24
|
+
TEnum
|
|
25
|
+
] extends [never] ? TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null : TNotNull extends true ? TEnum[number] : TEnum[number] | null : TNotNull extends true ? TCustomType : TCustomType | null : never;
|
|
22
26
|
type AnySQLiteColumn = SQLiteColumn<any, any, any, any, any, any, any, any>;
|
|
23
27
|
type AnyTable = Table<Record<string, AnySQLiteColumn>, string>;
|
|
24
28
|
type InferSelectModel<T extends AnyTable> = {
|
|
@@ -231,10 +235,15 @@ type OptionalColumns<TColumns extends Record<string, AnySQLiteColumn>> = {
|
|
|
231
235
|
type RequiredColumns<TColumns extends Record<string, AnySQLiteColumn>> = {
|
|
232
236
|
[K in keyof TColumns]: IsOptionalOnInsert<TColumns[K]> extends true ? never : K;
|
|
233
237
|
}[keyof TColumns];
|
|
238
|
+
type ExtractInsertColumnType<T extends AnySQLiteColumn> = T extends SQLiteColumn<infer _, infer TType, infer TMode, infer TNotNull, infer THasDefault, infer TAutoincrement, infer TEnum, infer TCustomType> ? [
|
|
239
|
+
TCustomType
|
|
240
|
+
] extends [never] ? [
|
|
241
|
+
TEnum
|
|
242
|
+
] extends [never] ? TNotNull extends true ? ColumnValueTypes<TType, TMode> : ColumnValueTypes<TType, TMode> | null : TNotNull extends true ? TEnum[number] : TEnum[number] | null : TNotNull extends true ? TCustomType : TCustomType | null : never;
|
|
234
243
|
type InferInsertModel<T extends AnyTable> = {
|
|
235
|
-
[K in RequiredColumns<T['_']['columns']>]:
|
|
244
|
+
[K in RequiredColumns<T['_']['columns']>]: ExtractInsertColumnType<T['_']['columns'][K]>;
|
|
236
245
|
} & {
|
|
237
|
-
[K in OptionalColumns<T['_']['columns']>]?:
|
|
246
|
+
[K in OptionalColumns<T['_']['columns']>]?: ExtractInsertColumnType<T['_']['columns'][K]>;
|
|
238
247
|
};
|
|
239
248
|
declare class Table<TColumns extends Record<string, AnySQLiteColumn>, TTableName extends string> {
|
|
240
249
|
_: {
|
|
@@ -396,22 +405,22 @@ declare const as: <T>(aggregate: SQLAggregate<T>, alias: string) => SQLAggregate
|
|
|
396
405
|
declare const subquery: <T extends AnyTable>(query: SelectQueryBuilder<T, any>) => SQLSubquery;
|
|
397
406
|
declare const scalarSubquery: <T extends AnyTable>(query: SelectQueryBuilder<T, any>) => SQLSubquery;
|
|
398
407
|
|
|
399
|
-
declare const text: <TName extends string, TEnum extends readonly string[]>(name: TName, config?: {
|
|
400
|
-
mode?:
|
|
408
|
+
declare const text: <TName extends string, TMode extends "default" | "json" = "default", TEnum extends readonly string[] = never>(name: TName, config?: {
|
|
409
|
+
mode?: TMode;
|
|
401
410
|
enum?: TEnum;
|
|
402
|
-
}) => SQLiteColumn<TName, "TEXT",
|
|
403
|
-
declare const integer: <TName extends string>(name: TName, config?: {
|
|
404
|
-
mode?:
|
|
405
|
-
}) => SQLiteColumn<TName, "INTEGER",
|
|
411
|
+
}) => SQLiteColumn<TName, "TEXT", TMode, false, false, false, TEnum, never>;
|
|
412
|
+
declare const integer: <TName extends string, TMode extends Mode = "default">(name: TName, config?: {
|
|
413
|
+
mode?: TMode;
|
|
414
|
+
}) => SQLiteColumn<TName, "INTEGER", TMode, false, false, false, never, never>;
|
|
406
415
|
declare const real: <TName extends string>(name: TName) => SQLiteColumn<TName, "REAL", "default", false, false, false, never, never>;
|
|
407
|
-
declare const blob: <TName extends string>(name: TName, config?: {
|
|
408
|
-
mode
|
|
409
|
-
}) => SQLiteColumn<TName, "BLOB",
|
|
416
|
+
declare const blob: <TName extends string, TMode extends "json" | "bigint" | "default" = "default">(name: TName, config?: {
|
|
417
|
+
mode?: TMode;
|
|
418
|
+
}) => SQLiteColumn<TName, "BLOB", TMode, false, false, false, never, never>;
|
|
410
419
|
declare const boolean: <TName extends string>(name: TName) => SQLiteColumn<TName, "BOOLEAN", "default", false, false, false, never, never>;
|
|
411
|
-
declare const numeric: <TName extends string>(name: TName, config?: {
|
|
412
|
-
mode?:
|
|
413
|
-
}) => SQLiteColumn<TName, "NUMERIC",
|
|
414
|
-
declare const enumType: <TName extends string, TValues extends readonly [string, ...string[]]>(name: TName, values: TValues) => SQLiteColumn<TName, "TEXT",
|
|
420
|
+
declare const numeric: <TName extends string, TMode extends "bigint" | "default" = "default">(name: TName, config?: {
|
|
421
|
+
mode?: TMode;
|
|
422
|
+
}) => SQLiteColumn<TName, "NUMERIC", TMode, false, false, false, never, never>;
|
|
423
|
+
declare const enumType: <TName extends string, TValues extends readonly [string, ...string[]]>(name: TName, values: TValues) => SQLiteColumn<TName, "TEXT", "default", false, false, false, TValues, never>;
|
|
415
424
|
|
|
416
425
|
declare class TauriORMError extends Error {
|
|
417
426
|
constructor(message: string);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@type32/tauri-sqlite-orm",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.8",
|
|
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",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"author": "Type-32",
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@types/node": "^24.10.
|
|
33
|
+
"@types/node": "^24.10.1",
|
|
34
34
|
"tsup": "^8.5.0",
|
|
35
35
|
"typescript": "^5.9.3"
|
|
36
36
|
},
|