export type QueryMode = 'sync' | 'async' | undefined;
export type Runtime = 'sqlite' | 'mysql' | 'postgres';
export type QueryDialect = 'universal' | Runtime;
export type Deliver = Meta extends Either ? Result | Promise : Meta extends Sync ? Result : Promise;
export interface QueryMeta {
mode: QueryMode;
dialect: QueryDialect;
}
export interface Sync extends QueryMeta {
mode: 'sync';
dialect: Dialect;
}
export interface Async extends QueryMeta {
mode: 'async';
dialect: Dialect;
}
export interface IsPostgres extends QueryMeta {
dialect: 'postgres';
}
export interface IsMysql extends QueryMeta {
dialect: 'mysql';
}
export interface IsSqlite extends QueryMeta {
dialect: 'sqlite';
}
export interface Either extends QueryMeta {
mode: 'sync' | 'async';
dialect: QueryDialect;
}