ts-sql-query is a type-safe query builder that provides a way to build dynamic SQL queries in a type-safe way, that means, the TypeScript compiler verifies the queries.
Type-safe SQL means the mistakes writting a query will be detected during the compilation time. With ts-sql-query you don't need to be affraid of change the database, the problems caused by the change will be detected during compilation time.
ts-sql-query supports MariaDB, MySql, Oracle, PostgreSql, Sqlite and SqlServer. Note: this is not an ORM, and the most probably is you don't need one.
You can find a complete example using ts-sql-query with PostgreSQL in the file PgExample.ts. You can browse the examples folder to see an example for each supported database using different ways to connect to it.
let ii = await connection
.insertInto(tCustomer)
.values([
{ firstName: 'John', lastName: 'Smith', companyId: 1 },
{ firstName: 'Other', lastName: 'Person', companyId: 1 },
{ firstName: 'Jane', lastName: 'Doe', companyId: 1 }
])
.returningLastInsertedId()
.executeInsert()
assertEquals(ii, [1, 2, 3])
let names = await connection
.selectFrom(tCompany)
.selectOneColumn(tCompany.name)
.orderBy('result')
.executeSelectMany()
assertEquals(names, ['ACME', 'FOO'])