diff --git a/pg-promise/pg-promise-tests.ts b/pg-promise/pg-promise-tests.ts new file mode 100644 index 0000000000..dcfcea6c9e --- /dev/null +++ b/pg-promise/pg-promise-tests.ts @@ -0,0 +1,34 @@ +/// + +import * as pgpromise from "pg-promise"; + +let db: pgpromise.PromiseClient; +let pgp: pgpromise.PgPromise; + +db.one('sql', { 'values': 'values' }); +db.oneOrNone('sql', { 'values': 'values' }); +db.many('sql', { 'values': 'values' }); +db.many('sql', { 'values': 'values' }, { 'optional': 'optional' }); + +// All functions +db.none('sql'); +db.one('sql'); +db.many('sql'); +db.query('sql'); + + +db.any('sql'); +db.oneOrNone('sql'); +db.manyOrNone('sql'); + +db.func('sql'); +db.proc('sql'); + +db.task(() => {}); +db.tx(() => {}); + +// Optional values +db.none('sql', { 'values': 'values' }); + +// QRM parameter +db.none('sql', { 'values': 'values' }, { 'QRM': 'QRM' }); diff --git a/pg-promise/pg-promise-tests.ts.tscparams b/pg-promise/pg-promise-tests.ts.tscparams new file mode 100644 index 0000000000..14fce22a5c --- /dev/null +++ b/pg-promise/pg-promise-tests.ts.tscparams @@ -0,0 +1 @@ +--target ES6 diff --git a/pg-promise/pg-promise.d.ts b/pg-promise/pg-promise.d.ts new file mode 100644 index 0000000000..c6b5d3e0d8 --- /dev/null +++ b/pg-promise/pg-promise.d.ts @@ -0,0 +1,80 @@ +// Type definitions for pg-promise +// Project: https://github.com/vitaly-t/pg-promise +// Definitions by: Jörg Dotzki +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +// tsc --noImplicitAny --module commonjs --target ES6 pg-promise/pg-promise-tests.ts + +/// + + +declare module PgPromise { +} + + +declare module "pg-promise" { + + import * as pg from "pg"; + + function e(options?: { + + pgFormatting?: Object; + promiseLib?: Object; + connect?: Function; + disconnect?: Function; + query?: Function; + task?: Function; + transact?: Function; + error?: Function; + extend?: Function; + noLocking?: Function; + }): e.PgPromise; + + + + module e { + + export interface PromiseClient { + + none(queryText: string, values?: any[] | any, qrm?: any): Promise; + one(queryText: string, values?: any[] | any, qrm?: any): Promise; + many(queryText: string, values?: any[] | any, qrm?: any): Promise; + query(queryText: string, values?: any[] | any, qrm?: any): Promise; + + + any(queryText: string, values?: any[] | any, qrm?: any): Promise; + oneOrNone(queryText: string, values?: any[] | any, qrm?: any): Promise; + manyOrNone(queryText: string, values?: any[] | any, qrm?: any): Promise; + + func(queryText: string, values?: any[] | any, qrm?: any): Promise; + proc(queryText: string, values?: any[] | any): Promise; + + task(func: Function): Promise; + tx(func: Function): Promise; + } + + export interface PgPromise { + connect(callback?: (err: Error) => void): void; + end(): void; + (connectionString: string): PromiseClient; + + as: convert; + } + + export interface convert { + + bool(value: any): boolean; + number(value: any): number; + text(value: any, raw: any): string; + name(value: any): string; + date(value: any, raw: any): string; + json(value: any, raw: any): string; + array(value: any): Array; + csv(value: any): string; + func(func: Function, raw: any, obj: any): Function; + format(query: string, values: any): any; + } + } + + export = e; +}