SQL generation using ES6 tagged template strings
npm install sqltagSQL generation using ES6 tagged template strings for mysql / mysql2 and postgres.
``sh`
npm install sqltag
You can use ${} syntax for value interpolation.
`js
import SQL from 'sqltag'
mysql.query(SQLSELECT * FROM users WHERE id = ${15})SELECT * FROM users WHERE id = ${15} AND age > ${30}
mysql.query(SQL)
pg.query(SQLSELECT * FROM users WHERE id = ${15})SELECT * FROM users WHERE id = ${15} AND age > ${30}
pg.query(SQL)`
Raw values are inserted into resulting SQL as is.
`jsSELECT * FROM ${SQL.raw('users')} WHERE id = ${15}
pg.query(SQL)`
Identifiers are escaped according to database engine. Use for table / field names.
`jsSELECT * FROM ${SQL.ident('users')} WHERE id = ${15}
pg.query(SQL)`
`jsSELECT * FROM users ${SQL.where({ id: 15, name: 'foo' })}
pg.query(SQL)SELECT * FROM users ${SQL.where({ id: 15, age: SQL.op('>', 30) })}
pg.query(SQL)`
`jsUPDATE users ${SQL.set({ name: 'foo', age: 40 })} WHERE id = ${33}
pg.query(SQL)`
`jsINSERT INTO users ${SQL.values({ name: 'foo', age: 40 })}
pg.query(SQL)INSERT INTO users ${SQL.values([{ name: 'foo', age: 40 }, { name: 'bar', age: 50 }])}
pg.query(SQL)`
`jsSELECT * FROM users WHERE tags IN (${SQL.spread(['foo', 'bar', 'baz'])})
pg.query(SQL)``