@@ -6,13 +6,17 @@ import {
66 createDrizzleRuntimeSchemaSqlFromTables ,
77 drizzleAdapter ,
88} from "fumadb/adapters/drizzle" ;
9- import { schema as fumaSchema } from "fumadb/schema" ;
9+ import { schema as fumaSchema , type RelationsMap } from "fumadb/schema" ;
1010
1111import type { FumaDb , FumaTables } from "@executor-js/sdk" ;
1212
13- export interface SqliteFumaDb {
14- readonly db : FumaDb ;
15- readonly fuma : FumaDB ;
13+ type SqliteFumaSchema < TTables extends FumaTables > = ReturnType <
14+ typeof fumaSchema < string , TTables , RelationsMap < TTables > >
15+ > ;
16+
17+ export interface SqliteFumaDb < TTables extends FumaTables = FumaTables > {
18+ readonly db : FumaDb < SqliteFumaSchema < TTables > > ;
19+ readonly fuma : FumaDB < SqliteFumaSchema < TTables > [ ] > ;
1620 readonly drizzle : BunSQLiteDatabase < Record < string , unknown > > ;
1721 readonly sqlite : Database ;
1822 readonly close : ( ) => Promise < void > ;
@@ -25,12 +29,9 @@ export interface CreateSqliteFumaDbOptions<TTables extends FumaTables = FumaTabl
2529 readonly path : string ;
2630}
2731
28- const asFumaDb = ( db : unknown ) : FumaDb => db as FumaDb ;
29- const asFumaClient = ( client : unknown ) : FumaDB => client as FumaDB ;
30-
3132export const createSqliteFumaDb = async < const TTables extends FumaTables > (
3233 options : CreateSqliteFumaDbOptions < TTables > ,
33- ) : Promise < SqliteFumaDb > => {
34+ ) : Promise < SqliteFumaDb < TTables > > => {
3435 const version = options . version ?? "1.0.0" ;
3536 const sqlite = new Database ( options . path , { create : true } ) ;
3637 sqlite . exec ( "PRAGMA foreign_keys = ON" ) ;
@@ -69,8 +70,8 @@ export const createSqliteFumaDb = async <const TTables extends FumaTables>(
6970 ) ;
7071
7172 return {
72- db : asFumaDb ( fuma . orm ( version ) ) ,
73- fuma : asFumaClient ( fuma ) ,
73+ db : fuma . orm ( version ) ,
74+ fuma,
7475 drizzle : drizzleDb ,
7576 sqlite,
7677 close : async ( ) => {
0 commit comments