pgsqwell
TypeScript icon, indicating that this package has built-in type declarations

5.1.0 • Public • Published

pgsqwell

SQL template tag for PostgreSQL done well

GitHub license

Done well because:

  • immutable
  • separation of concerns / specialization: use the sql tag for valid SQL statements, sqlPart for subparts that ain't necessarily valid

Sample usage

import sql, {
  escapeSQLIdentifier,
  sqlPart,
  emptySQLPart,
  joinSQLValues,
} from 'pgsqwell';

const limit = 10;
const query = sql`SELECT id FROM users WHERE name=${'toto'} ${
  limit ? sqlPart`LIMIT ${limit}` : emptySQLPart
}`;
const query2 = sql`SELECT id FROM ${escapeSQLIdentifier('table')}`;
const query3 = sql`SELECT id FROM users WHERE id IN ${joinSQLValues([1, 2])}}`;
const mergedQuery = sql`
${query}
UNION
${query2}
UNION
${query3}
`;

Debug

To print any query built with pgsqwell use the DEBUG=pgsqwell environment variable:

DEBUG=pgsqwell npm t

Testing

Use pgsqwell-mock to check you queries in your tests.

Known downsides

Authors

License

MIT

Dependents (1)

Package Sidebar

Install

npm i pgsqwell

Weekly Downloads

330

Version

5.1.0

License

MIT

Unpacked Size

51.1 kB

Total Files

16

Last publish

Collaborators

  • nfroidure