aws-xray-sdk-postgres
Version:
AWS X-Ray Patcher for Postgres (Javascript)
72 lines (55 loc) • 2.97 kB
text/typescript
/* 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<PG.Query>(client.query(queryStream));
expectType<PG.Query>(client.query(queryStream, segment));
const queryArrayConfig: PG.QueryArrayConfig = {
name: 'get-name',
text: 'SELECT $1::text',
values: ['brianc'],
rowMode: 'array',
};
expectType<Promise<PG.QueryArrayResult>>(client.query(queryArrayConfig));
expectType<Promise<PG.QueryArrayResult>>(client.query(queryArrayConfig, ['brianc']));
expectType<Promise<PG.QueryArrayResult>>(client.query(queryArrayConfig, ['brianc'], segment));
expectType<void>(client.query(queryArrayConfig, queryArrayCallback));
expectType<void>(client.query(queryArrayConfig, queryArrayCallback));
expectType<void>(client.query(queryArrayConfig, queryArrayCallback, segment));
const queryConfig: PG.QueryConfig = {
name: 'moop',
text: 'SELECT $1::text as name',
values: ['brianc']
};
expectType<Promise<PG.QueryResult>>(client.query(queryConfig));
expectType<Promise<PG.QueryResult>>(client.query(queryConfig, ['brianc']));
expectType<Promise<PG.QueryResult>>(client.query(queryConfig, ['brianc'], segment));
expectType<void>(client.query(queryConfig, queryCallback));
expectType<void>(client.query(queryConfig, queryCallback));
expectType<void>(client.query(queryConfig, queryCallback, segment));
const queryText = 'select $1::text as name';
expectType<Promise<PG.QueryResult>>(client.query(queryText));
expectType<Promise<PG.QueryResult>>(client.query(queryText, ['brianc']));
expectType<Promise<PG.QueryResult>>(client.query(queryText, ['brianc'], segment));
expectType<void>(client.query(queryText, queryCallback));
expectType<void>(client.query(queryText, ['brianc'], queryCallback));
expectType<void>(client.query(queryText, ['brianc'], queryCallback, segment));
}