@trithanka/sql-builder
Version:
A lightweight, function-based, chainable SQL query builder for Node.js using MySQL pool connections.
30 lines (25 loc) • 860 B
JavaScript
const { createSelectBuilder } = require('../src');
const filters = {
status: 'active',
role: 'admin',
fromDate: '2024-01-01',
toDate: '2024-12-31',
limit: 10,
offset: 0
};
const builder = createSelectBuilder('SELECT * FROM users');
// Regular data query
const { sql, values, countSql, countValues } = builder
.where('status = ?', filters.status)
.where('role = ?', filters.role)
.where('created_at >= ?', filters.fromDate)
.where('created_at <= ?', filters.toDate)
.groupBy('role') // optional group
.having('COUNT(*) > ?', 1) // optional having
.orderBy('created_at', 'desc')
.paginate(filters.limit, filters.offset)
.build('count'); // pass 'count' if you also want count SQL
console.log('Main SQL:', sql);
console.log('Main Values:', values);
console.log('Count SQL:', countSql);
console.log('Count Values:', countValues);