kysely-generic-sqlite
Version:
Generic kysely dialect for SQLite, support run in main thread or worker
52 lines (49 loc) • 2.55 kB
text/typescript
import { a as IGenericSqliteExecutor, I as IGenericSqlite } from './type-dQxYJ4xm.cjs';
import { Dialect, Driver, QueryCompiler, DialectAdapter, Kysely, DatabaseIntrospector, DatabaseConnection } from 'kysely';
declare class BaseSqliteDialect implements Dialect {
/**
* Base class that implements {@link Dialect}
* @param create function that create {@link Driver}
*/
constructor(create: () => Driver);
createDriver: () => Driver;
createQueryCompiler(): QueryCompiler;
createAdapter(): DialectAdapter;
createIntrospector(db: Kysely<any>): DatabaseIntrospector;
}
declare abstract class BaseSqliteDriver implements Driver {
private mutex;
conn?: DatabaseConnection;
savepoint: ((connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']) => Promise<void>) | undefined;
releaseSavepoint: ((connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']) => Promise<void>) | undefined;
rollbackToSavepoint: ((connection: DatabaseConnection, savepointName: string, compileQuery: QueryCompiler['compileQuery']) => Promise<void>) | undefined;
init: () => Promise<void>;
/**
* Base abstract class that implements {@link Driver}
*
* You **MUST** assign `this.conn` in `init` and implement `destroy` method
*/
constructor(init: () => Promise<void>);
acquireConnection(): Promise<DatabaseConnection>;
beginTransaction(connection: DatabaseConnection): Promise<void>;
commitTransaction(connection: DatabaseConnection): Promise<void>;
rollbackTransaction(connection: DatabaseConnection): Promise<void>;
releaseConnection(): Promise<void>;
abstract destroy(): Promise<void>;
}
/**
* Wrapper for {@link IGenericSqlite}'s `query` function
*
* Do not support `returning` in `INSERT`, `UPDATE`, `DELETE`
* @param exec {@link IGenericSqliteExecutor}
*/
declare function buildQueryFnAlt(exec: IGenericSqliteExecutor): IGenericSqlite['query'];
/**
* Wrapper for {@link IGenericSqlite}'s `query` function
*
* Support `returning`, get `insertId` and `numAffectedRows` by calling `select 1`
* @param exec {@link IGenericSqliteExecutor} `exec.run` will never call real sqls
*/
declare function buildQueryFn(exec: IGenericSqliteExecutor): IGenericSqlite['query'];
declare function parseBigInt(num: number | bigint | null | undefined): bigint | undefined;
export { BaseSqliteDialect as B, BaseSqliteDriver as a, buildQueryFnAlt as b, buildQueryFn as c, parseBigInt as p };