mirror of
https://github.com/shishantbiswas/bknd.git
synced 2026-03-16 12:37:20 +00:00
Aligned connection constructors to include an explicit name parameter, updated documentation, and streamlined connection methods for consistency. Adjusted dependencies and cleaned unused references.
34 lines
973 B
TypeScript
34 lines
973 B
TypeScript
import { Kysely, PostgresDialect } from "kysely";
|
|
import { PostgresIntrospector } from "./PostgresIntrospector";
|
|
import { PostgresConnection, plugins } from "./PostgresConnection";
|
|
import { customIntrospector } from "bknd";
|
|
import $pg from "pg";
|
|
|
|
export type PgPostgresConnectionConfig = $pg.PoolConfig;
|
|
|
|
export class PgPostgresConnection extends PostgresConnection {
|
|
override name = "pg";
|
|
private pool: $pg.Pool;
|
|
|
|
constructor(config: PgPostgresConnectionConfig) {
|
|
const pool = new $pg.Pool(config);
|
|
const kysely = new Kysely({
|
|
dialect: customIntrospector(PostgresDialect, PostgresIntrospector, {
|
|
excludeTables: [],
|
|
}).create({ pool }),
|
|
plugins,
|
|
});
|
|
|
|
super(kysely);
|
|
this.pool = pool;
|
|
}
|
|
|
|
override async close(): Promise<void> {
|
|
await this.pool.end();
|
|
}
|
|
}
|
|
|
|
export function pg(config: PgPostgresConnectionConfig): PgPostgresConnection {
|
|
return new PgPostgresConnection(config);
|
|
}
|