pgsqwell
v4.1.0
Published
SQL template tag for PostgreSQL done well
Downloads
647
Readme
pgsqwell
SQL template tag for PostgreSQL done well
Done well because:
- immutable
- the
sql
tag for valid SQL statementssqlPart
for subparts - allows syntax checking in your tests
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}
`;
To check queries in your Jest tests, simply add this to your tests files:
jest.mock('pgsqwell', () => require('pgsqwell/dist/mock'));
Known downsides:
- if you use the vscode-sql-tagged-template-literal plugin like I do, composed SQL queries won't be validated for their SQL syntax.