UNPKG

@pgxsinkit/pgwasm

Version:
39 lines • 2.42 kB
import type { Cache } from "drizzle-orm/cache/core/cache"; import type { WithCacheConfig } from "drizzle-orm/cache/core/types"; import { entityKind } from "drizzle-orm/entity"; import { type Logger } from "drizzle-orm/logger"; import { PgAsyncPreparedQuery, PgAsyncSession, PgAsyncTransaction } from "drizzle-orm/pg-core/async/session"; import type { PgDialect } from "drizzle-orm/pg-core/dialect"; import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "drizzle-orm/pg-core/session"; import type { AnyRelations } from "drizzle-orm/relations"; import { type Query } from "drizzle-orm/sql/sql"; import type { Assume } from "drizzle-orm/utils"; import type { Pgwasm, Results, Row } from "../interface"; /** What a session runs statements on: a database, or a transaction's handle. */ export type PgwasmSessionClient = Pick<Pgwasm, "query"> & Partial<Pick<Pgwasm, "transaction">>; export interface PgwasmSessionOptions { logger?: Logger; cache?: Cache; } export interface PgwasmQueryResultHKT extends PgQueryResultHKT { type: Results<Assume<this["row"], Row>>; } type QueryMetadata = { type: "select" | "update" | "delete" | "insert"; tables: string[]; }; export declare class PgwasmSession<TRelations extends AnyRelations> extends PgAsyncSession<PgwasmQueryResultHKT, TRelations> { #private; static readonly [entityKind]: string; constructor(client: PgwasmSessionClient, dialect: PgDialect, relations: TRelations, options?: PgwasmSessionOptions); prepareQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: Query, mode: "arrays" | "objects" | "raw", _name: string | boolean, mapper: ((rows: unknown[]) => unknown) | undefined, queryMetadata?: QueryMetadata, cacheConfig?: WithCacheConfig): PgAsyncPreparedQuery<T>; transaction<T>(transaction: (tx: PgwasmTransaction<TRelations>) => Promise<T>, config?: PgTransactionConfig): Promise<T>; } export declare class PgwasmTransaction<TRelations extends AnyRelations> extends PgAsyncTransaction<PgwasmQueryResultHKT, TRelations> { #private; static readonly [entityKind]: string; constructor(dialect: PgDialect, session: PgwasmSession<TRelations>, relations: TRelations, nestedIndex: number | undefined, parseRqbJson: boolean | undefined); transaction<T>(transaction: (tx: PgwasmTransaction<TRelations>) => Promise<T>): Promise<T>; } export {}; //# sourceMappingURL=session.d.ts.map