@type32/tauri-sqlite-orm 0.2.7 → 0.2.9
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 +30 -17
- package/dist/index.d.ts +30 -17
- package/dist/index.js +12 -4
- package/dist/index.mjs +12 -4
- package/package.json +1 -1
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,26 @@ 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
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
408
|
+
declare function text<TName extends string>(name: TName): SQLiteColumn<TName, 'TEXT', 'default', false, false, false, never, never>;
|
|
409
|
+
declare function text<TName extends string, const TConfig extends {
|
|
410
|
+
mode?: 'default' | 'json';
|
|
411
|
+
enum?: readonly string[];
|
|
412
|
+
}>(name: TName, config: TConfig): SQLiteColumn<TName, 'TEXT', TConfig['mode'] extends 'json' ? 'json' : 'default', false, false, false, TConfig['enum'] extends readonly string[] ? TConfig['enum'] : never, never>;
|
|
413
|
+
declare function integer<TName extends string>(name: TName): SQLiteColumn<TName, 'INTEGER', 'default', false, false, false, never, never>;
|
|
414
|
+
declare function integer<TName extends string, const TConfig extends {
|
|
415
|
+
mode: Mode;
|
|
416
|
+
}>(name: TName, config: TConfig): SQLiteColumn<TName, 'INTEGER', TConfig['mode'], false, false, false, never, never>;
|
|
406
417
|
declare const real: <TName extends string>(name: TName) => SQLiteColumn<TName, "REAL", "default", false, false, false, never, never>;
|
|
407
|
-
declare
|
|
408
|
-
|
|
409
|
-
|
|
418
|
+
declare function blob<TName extends string>(name: TName): SQLiteColumn<TName, 'BLOB', 'default', false, false, false, never, never>;
|
|
419
|
+
declare function blob<TName extends string, const TConfig extends {
|
|
420
|
+
mode: 'json' | 'bigint' | 'default';
|
|
421
|
+
}>(name: TName, config: TConfig): SQLiteColumn<TName, 'BLOB', TConfig['mode'], false, false, false, never, never>;
|
|
410
422
|
declare const boolean: <TName extends string>(name: TName) => SQLiteColumn<TName, "BOOLEAN", "default", false, false, false, never, never>;
|
|
411
|
-
declare
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
423
|
+
declare function numeric<TName extends string>(name: TName): SQLiteColumn<TName, 'NUMERIC', 'default', false, false, false, never, never>;
|
|
424
|
+
declare function numeric<TName extends string, const TConfig extends {
|
|
425
|
+
mode: 'bigint' | 'default';
|
|
426
|
+
}>(name: TName, config: TConfig): SQLiteColumn<TName, 'NUMERIC', TConfig['mode'], false, false, false, never, never>;
|
|
427
|
+
declare const enumType: <TName extends string, TValues extends readonly [string, ...string[]]>(name: TName, values: TValues) => SQLiteColumn<TName, "TEXT", "default", false, false, false, TValues extends readonly string[] ? TValues : never, never>;
|
|
415
428
|
|
|
416
429
|
declare class TauriORMError extends Error {
|
|
417
430
|
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,26 @@ 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
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
408
|
+
declare function text<TName extends string>(name: TName): SQLiteColumn<TName, 'TEXT', 'default', false, false, false, never, never>;
|
|
409
|
+
declare function text<TName extends string, const TConfig extends {
|
|
410
|
+
mode?: 'default' | 'json';
|
|
411
|
+
enum?: readonly string[];
|
|
412
|
+
}>(name: TName, config: TConfig): SQLiteColumn<TName, 'TEXT', TConfig['mode'] extends 'json' ? 'json' : 'default', false, false, false, TConfig['enum'] extends readonly string[] ? TConfig['enum'] : never, never>;
|
|
413
|
+
declare function integer<TName extends string>(name: TName): SQLiteColumn<TName, 'INTEGER', 'default', false, false, false, never, never>;
|
|
414
|
+
declare function integer<TName extends string, const TConfig extends {
|
|
415
|
+
mode: Mode;
|
|
416
|
+
}>(name: TName, config: TConfig): SQLiteColumn<TName, 'INTEGER', TConfig['mode'], false, false, false, never, never>;
|
|
406
417
|
declare const real: <TName extends string>(name: TName) => SQLiteColumn<TName, "REAL", "default", false, false, false, never, never>;
|
|
407
|
-
declare
|
|
408
|
-
|
|
409
|
-
|
|
418
|
+
declare function blob<TName extends string>(name: TName): SQLiteColumn<TName, 'BLOB', 'default', false, false, false, never, never>;
|
|
419
|
+
declare function blob<TName extends string, const TConfig extends {
|
|
420
|
+
mode: 'json' | 'bigint' | 'default';
|
|
421
|
+
}>(name: TName, config: TConfig): SQLiteColumn<TName, 'BLOB', TConfig['mode'], false, false, false, never, never>;
|
|
410
422
|
declare const boolean: <TName extends string>(name: TName) => SQLiteColumn<TName, "BOOLEAN", "default", false, false, false, never, never>;
|
|
411
|
-
declare
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
423
|
+
declare function numeric<TName extends string>(name: TName): SQLiteColumn<TName, 'NUMERIC', 'default', false, false, false, never, never>;
|
|
424
|
+
declare function numeric<TName extends string, const TConfig extends {
|
|
425
|
+
mode: 'bigint' | 'default';
|
|
426
|
+
}>(name: TName, config: TConfig): SQLiteColumn<TName, 'NUMERIC', TConfig['mode'], false, false, false, never, never>;
|
|
427
|
+
declare const enumType: <TName extends string, TValues extends readonly [string, ...string[]]>(name: TName, values: TValues) => SQLiteColumn<TName, "TEXT", "default", false, false, false, TValues extends readonly string[] ? TValues : never, never>;
|
|
415
428
|
|
|
416
429
|
declare class TauriORMError extends Error {
|
|
417
430
|
constructor(message: string);
|
package/dist/index.js
CHANGED
|
@@ -1564,12 +1564,20 @@ var scalarSubquery = (query) => {
|
|
|
1564
1564
|
};
|
|
1565
1565
|
|
|
1566
1566
|
// src/column-helpers.ts
|
|
1567
|
-
|
|
1568
|
-
|
|
1567
|
+
function text(name, config) {
|
|
1568
|
+
return new SQLiteColumn(name, "TEXT", config);
|
|
1569
|
+
}
|
|
1570
|
+
function integer(name, config) {
|
|
1571
|
+
return new SQLiteColumn(name, "INTEGER", config);
|
|
1572
|
+
}
|
|
1569
1573
|
var real = (name) => new SQLiteColumn(name, "REAL");
|
|
1570
|
-
|
|
1574
|
+
function blob(name, config) {
|
|
1575
|
+
return new SQLiteColumn(name, "BLOB", config);
|
|
1576
|
+
}
|
|
1571
1577
|
var boolean = (name) => new SQLiteColumn(name, "BOOLEAN");
|
|
1572
|
-
|
|
1578
|
+
function numeric(name, config) {
|
|
1579
|
+
return new SQLiteColumn(name, "NUMERIC", config);
|
|
1580
|
+
}
|
|
1573
1581
|
var enumType = (name, values) => text(name, { enum: values });
|
|
1574
1582
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1575
1583
|
0 && (module.exports = {
|
package/dist/index.mjs
CHANGED
|
@@ -1465,12 +1465,20 @@ var scalarSubquery = (query) => {
|
|
|
1465
1465
|
};
|
|
1466
1466
|
|
|
1467
1467
|
// src/column-helpers.ts
|
|
1468
|
-
|
|
1469
|
-
|
|
1468
|
+
function text(name, config) {
|
|
1469
|
+
return new SQLiteColumn(name, "TEXT", config);
|
|
1470
|
+
}
|
|
1471
|
+
function integer(name, config) {
|
|
1472
|
+
return new SQLiteColumn(name, "INTEGER", config);
|
|
1473
|
+
}
|
|
1470
1474
|
var real = (name) => new SQLiteColumn(name, "REAL");
|
|
1471
|
-
|
|
1475
|
+
function blob(name, config) {
|
|
1476
|
+
return new SQLiteColumn(name, "BLOB", config);
|
|
1477
|
+
}
|
|
1472
1478
|
var boolean = (name) => new SQLiteColumn(name, "BOOLEAN");
|
|
1473
|
-
|
|
1479
|
+
function numeric(name, config) {
|
|
1480
|
+
return new SQLiteColumn(name, "NUMERIC", config);
|
|
1481
|
+
}
|
|
1474
1482
|
var enumType = (name, values) => text(name, { enum: values });
|
|
1475
1483
|
export {
|
|
1476
1484
|
BaseQueryBuilder,
|