UNPKG

mysql-with-kysely

Version:
12 lines (11 loc) 879 B
import { DeleteQueryBuilder, DeleteResult, InsertQueryBuilder, InsertResult, Selectable, SelectQueryBuilder, UpdateQueryBuilder, UpdateResult } from 'kysely'; import { PoolConnection, ResultSetHeader } from 'mysql2/promise'; import { Subscriber } from './logging'; declare type QueryType<Result, Database> = SelectQueryBuilder<Database, keyof Database, Result>; declare type ExecuteType = InsertQueryBuilder<never, never, InsertResult> | UpdateQueryBuilder<never, never, never, UpdateResult> | DeleteQueryBuilder<never, never, DeleteResult>; export interface Query<Database> { query<Result>(kyselyQb: QueryType<Result, Database>): Promise<Array<Selectable<Result>>>; execute(kyselyQb: ExecuteType): Promise<ResultSetHeader>; } export declare const queryWithSubscribers: (subscribers: Subscriber[]) => <Database>(connection: PoolConnection) => Query<Database>; export {};