/* eslint-disable @typescript-eslint/no-unused-vars */ import * as AWSXRay from 'aws-xray-sdk-core'; import * as PG from 'pg'; import { expectType } from 'tsd'; import { capturePostgres } from '../lib'; const segment = AWSXRay.getSegment(); const pg = capturePostgres(PG); const client: capturePostgres.PatchedClient = new pg.Client(); client.connect((err: Error) => { }); const pool = new pg.Pool(); pool.connect().then((client: capturePostgres.PatchedPoolClient) => { }); pool.connect((err: Error, client: capturePostgres.PatchedPoolClient, done: (release?: any) => void) => { }); pool.on('error', (err: Error, client: capturePostgres.PatchedPoolClient) => { }) .on('connect', (client: capturePostgres.PatchedPoolClient) => { }) .on('acquire', (client: capturePostgres.PatchedPoolClient) => { }) .on('remove', (client: capturePostgres.PatchedPoolClient) => { }); function testQuery(client: capturePostgres.PatchedClient | capturePostgres.PatchedPoolClient): void { const queryCallback = (err: Error, result: PG.QueryResult) => void { }; const queryArrayCallback = (err: Error, result: PG.QueryArrayResult) => void { }; const queryStream = new PG.Query(); expectType(client.query(queryStream)); expectType(client.query(queryStream, segment)); const queryArrayConfig: PG.QueryArrayConfig = { name: 'get-name', text: 'SELECT $1::text', values: ['brianc'], rowMode: 'array', }; expectType>(client.query(queryArrayConfig)); expectType>(client.query(queryArrayConfig, ['brianc'])); expectType>(client.query(queryArrayConfig, ['brianc'], segment)); expectType(client.query(queryArrayConfig, queryArrayCallback)); expectType(client.query(queryArrayConfig, queryArrayCallback)); expectType(client.query(queryArrayConfig, queryArrayCallback, segment)); const queryConfig: PG.QueryConfig = { name: 'moop', text: 'SELECT $1::text as name', values: ['brianc'] }; expectType>(client.query(queryConfig)); expectType>(client.query(queryConfig, ['brianc'])); expectType>(client.query(queryConfig, ['brianc'], segment)); expectType(client.query(queryConfig, queryCallback)); expectType(client.query(queryConfig, queryCallback)); expectType(client.query(queryConfig, queryCallback, segment)); const queryText = 'select $1::text as name'; expectType>(client.query(queryText)); expectType>(client.query(queryText, ['brianc'])); expectType>(client.query(queryText, ['brianc'], segment)); expectType(client.query(queryText, queryCallback)); expectType(client.query(queryText, ['brianc'], queryCallback)); expectType(client.query(queryText, ['brianc'], queryCallback, segment)); }