minime/types/sql-bricks-postgres/index.d.ts
Tau 2ccd9dc382 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.
2019-11-06 17:28:30 -05:00

31 lines
883 B
TypeScript

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<string | sql.SelectStatement>): PgSelectStatement;
select(columns: string[] | sql.SelectStatement[]): PgSelectStatement;
}
const PgSqlBricks: PgSqlBricksFn;
export default PgSqlBricks;
}