mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-19 16:49:45 +08:00
[pg] differentiate between pooled and non-pooled clients (release vs end)
This commit is contained in:
26
types/pg/index.d.ts
vendored
26
types/pg/index.d.ts
vendored
@@ -98,8 +98,8 @@ export class Pool extends events.EventEmitter {
|
||||
readonly idleCount: number;
|
||||
readonly waitingCount: number;
|
||||
|
||||
connect(): Promise<Client>;
|
||||
connect(callback: (err: Error, client: Client, done: () => void) => void): void;
|
||||
connect(): Promise<PoolClient>;
|
||||
connect(callback: (err: Error, client: PoolClient, done: () => void) => void): void;
|
||||
|
||||
end(): Promise<void>;
|
||||
end(callback: () => void): void;
|
||||
@@ -112,21 +112,16 @@ export class Pool extends events.EventEmitter {
|
||||
query(queryTextOrConfig: string | QueryConfig, callback: (err: Error, result: QueryResult) => void): Query;
|
||||
query(queryText: string, values: any[], callback: (err: Error, result: QueryResult) => void): Query;
|
||||
|
||||
on(event: "error", listener: (err: Error, client: Client) => void): this;
|
||||
on(event: "connect" | "acquire", listener: (client: Client) => void): this;
|
||||
on(event: "error", listener: (err: Error, client: PoolClient) => void): this;
|
||||
on(event: "connect" | "acquire", listener: (client: PoolClient) => void): this;
|
||||
}
|
||||
|
||||
export class Client extends events.EventEmitter {
|
||||
export class ClientBase extends events.EventEmitter {
|
||||
constructor(config: string | ClientConfig);
|
||||
|
||||
connect(): Promise<void>;
|
||||
connect(callback: (err: Error) => void): void;
|
||||
|
||||
end(): Promise<void>;
|
||||
end(callback: (err: Error) => void): void;
|
||||
|
||||
release(err?: Error): void;
|
||||
|
||||
query(queryStream: QueryConfig & stream.Readable): stream.Readable;
|
||||
query(queryConfig: QueryArrayConfig): Promise<QueryArrayResult>;
|
||||
query(queryConfig: QueryConfig): Promise<QueryResult>;
|
||||
@@ -151,6 +146,17 @@ export class Client extends events.EventEmitter {
|
||||
on(event: "end", listener: () => void): this;
|
||||
}
|
||||
|
||||
export class Client extends ClientBase {
|
||||
constructor(config: string | ClientConfig);
|
||||
|
||||
end(): Promise<void>;
|
||||
end(callback: (err: Error) => void): void;
|
||||
}
|
||||
|
||||
export interface PoolClient extends ClientBase {
|
||||
release(err?: Error): void;
|
||||
}
|
||||
|
||||
export class Query extends events.EventEmitter {
|
||||
on(event: "row", listener: (row: any, result?: ResultBuilder) => void): this;
|
||||
on(event: "error", listener: (err: Error) => void): this;
|
||||
|
||||
@@ -133,6 +133,12 @@ pool.connect((err, client, done) => {
|
||||
});
|
||||
});
|
||||
|
||||
pool.connect().then(client => {
|
||||
client.query({ text: 'SELECT $1::int AS number', values: ['1'], rowMode: 'array' }).then(result => {
|
||||
console.log(result.rowCount, result.rows[0][0], result.fields[0].name);
|
||||
}).then(() => client.release(), e => client.release(e));
|
||||
});
|
||||
|
||||
pool.on('error', (err, client) => {
|
||||
console.error('idle client error', err.message, err.stack);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user