kysely-replication
Version:
Replication-aware Kysely query execution
37 lines (32 loc) • 1.94 kB
text/typescript
import { K as KyselyReplicationDialectConfig, R as ReplicaStrategy } from './config-5S6ngVvi.cjs';
import { Dialect, DialectAdapter, Driver, Kysely, DatabaseIntrospector, QueryCompiler, DatabaseConnection, CompiledQuery, QueryResult, TransactionSettings } from 'kysely';
declare class KyselyReplicationDialect implements Dialect {
#private;
constructor(config: KyselyReplicationDialectConfig);
createAdapter(): DialectAdapter;
createDriver(): Driver;
createIntrospector(db: Kysely<unknown>): DatabaseIntrospector;
createQueryCompiler(): QueryCompiler;
}
declare class KyselyReplicationConnection implements DatabaseConnection {
#private;
constructor(primary: Driver, getReplica: (compiledQuery: CompiledQuery) => Promise<Driver>, onReplicaTransaction: 'error' | 'warn' | 'allow');
executeQuery<R>(compiledQuery: CompiledQuery): Promise<QueryResult<R>>;
streamQuery<R>(compiledQuery: CompiledQuery, chunkSize: number): AsyncIterableIterator<QueryResult<R>>;
beginTransaction(settings: TransactionSettings): Promise<void>;
commitTransaction(): Promise<void>;
rollbackTransaction(): Promise<void>;
release(): Promise<void>;
}
declare class KyselyReplicationDriver implements Driver {
#private;
constructor(primaryDriver: Driver, replicaDrivers: readonly Driver[], replicaStrategy: ReplicaStrategy);
acquireConnection(): Promise<DatabaseConnection>;
beginTransaction(connection: KyselyReplicationConnection, settings: TransactionSettings): Promise<void>;
commitTransaction(connection: KyselyReplicationConnection): Promise<void>;
destroy(): Promise<void>;
init(): Promise<void>;
releaseConnection(connection: KyselyReplicationConnection): Promise<void>;
rollbackTransaction(connection: KyselyReplicationConnection): Promise<void>;
}
export { KyselyReplicationDialect, KyselyReplicationDialectConfig, KyselyReplicationDriver, ReplicaStrategy };