From 2ccd9dc3820c503f85baa54137fc08dff99019ab Mon Sep 17 00:00:00 2001 From: Tau Date: Wed, 9 Oct 2019 18:46:19 -0400 Subject: [PATCH] types/sql-bricks-postgres: Add initial typings This commit declares and type-checks the following clauses: * limit().offset() chains on SelectStatement * onConflict().doUpdate() chains on InsertStatement We need to flesh out the other possibilities for onConflict() in particular before all these changes get submitted as an upstream PR. --- types/sql-bricks-postgres/index.d.ts | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 types/sql-bricks-postgres/index.d.ts diff --git a/types/sql-bricks-postgres/index.d.ts b/types/sql-bricks-postgres/index.d.ts new file mode 100644 index 0000000..7e64e8c --- /dev/null +++ b/types/sql-bricks-postgres/index.d.ts @@ -0,0 +1,30 @@ +declare module "sql-bricks-postgres" { + import * as sql from "sql-bricks"; + export * from "sql-bricks"; + + interface OnConflictClause { + doUpdate(colNames: string[]): sql.Statement; + } + + interface LimitClause extends sql.SelectStatement { + offset(value: number): sql.Statement; + } + + export interface PgInsertStatement extends sql.InsertStatement { + onConflict(...colNames: string[]): OnConflictClause; + } + + export interface PgSelectStatement extends sql.SelectStatement { + limit(value: number): LimitClause; + } + + export interface PgSqlBricksFn extends sql.SqlBricksFn { + insert(tbl?: string, ...values: any[]): PgInsertStatement; + + select(...columns: Array): PgSelectStatement; + select(columns: string[] | sql.SelectStatement[]): PgSelectStatement; + } + + const PgSqlBricks: PgSqlBricksFn; + export default PgSqlBricks; +}