simplify and export generic sqlite functions

This commit is contained in:
dswbx
2025-06-14 16:58:38 +02:00
parent 6b3ac9e6e2
commit 3338804c34
5 changed files with 81 additions and 74 deletions

View File

@@ -11,7 +11,6 @@ export {
} from "./Connection";
// sqlite
//export { libsql, LibsqlConnection, type LibSqlCredentials } from "./sqlite/LibsqlConnection";
export { SqliteConnection } from "./sqlite/SqliteConnection";
export { SqliteIntrospector } from "./sqlite/SqliteIntrospector";
export { SqliteLocalConnection } from "./sqlite/SqliteLocalConnection";

View File

@@ -10,6 +10,7 @@ import {
import { SqliteConnection } from "./SqliteConnection";
import type { Features } from "../Connection";
export type { IGenericSqlite };
export type GenericSqliteConnectionConfig = {
name: string;
additionalPlugins?: KyselyPlugin[];
@@ -18,8 +19,6 @@ export type GenericSqliteConnectionConfig = {
supports?: Partial<Features>;
};
export { parseBigInt, buildQueryFn, GenericSqliteDialect, type IGenericSqlite };
export class GenericSqliteConnection<DB = unknown> extends SqliteConnection<DB> {
override name = "generic-sqlite";
@@ -47,3 +46,20 @@ export class GenericSqliteConnection<DB = unknown> extends SqliteConnection<DB>
}
}
}
export function genericSqlite<DB>(
name: string,
db: DB,
executor: (utils: typeof genericSqliteUtils) => Promisable<IGenericSqlite<DB>>,
config?: GenericSqliteConnectionConfig,
) {
return new GenericSqliteConnection(db, () => executor(genericSqliteUtils), {
name,
...config,
});
}
export const genericSqliteUtils = {
parseBigInt,
buildQueryFn,
};