
Security News
Open Source CAI Framework Handles Pen Testing Tasks up to 3,600× Faster Than Humans
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Rewrite a select statement embedding a filter, sort, group or pagination using an otions object
Rewrite a select statement embedding a filter, order, group or pagination using an otions object. For MS Sql Server and postgres
$ npm install --save sql-view
var sqlView = require('sql-view')('postgres');
// build(view, criteria)
var view = sqlView.build('SELECT * FROM products'), {
where: {
price: {
lt: '1000'
}
});
console.log(view);
// => { statement: 'SELECT * FROM (SELECT * FROM "products") t WHERE "price"<$1',
// params: [ '1000' ]
// }
view = sqlView.build('products'), {
where: {
price: {
lt: '1000'
}
});
console.log(view);
// => { statement: 'SELECT * FROM "products" WHERE "price"<$1',
// params: [ '1000' ]
// }
The criteria objects are formed using one of four types of object keys. These are the top level keys used in a query object. It is loosely based on the criteria used in Waterline.
sqlView.build('select * from table', { where: { name: 'foo' }, skip: 20, limit: 10, order: 'name DESC' });
Use the key as the column name and the value for a exact match
sqlView.build('select * from table', { where: { name: 'briggs' }})
They can be used together to filter for multiple columns
sqlView.build('select * from table', { where: { name: 'briggs', state: 'california' }})
Keys can also hold any of the supported criteria modifiers to perform queries where a strict equality check wouldn't work.
sqlView.build('select * from table', { where: {
name : {
contains : 'alt'
}
}})
With an array each element is treated as or as in queries
sqlView.build('select * from table', { where: {
name : ['briggs', 'mike']
}});
Not in queries work similar to in queries
sqlView.build('select * from table', { where: {
name: { not : ['briggs', 'mike'] }
}});
Performing or queries is done by using an array of objects
sqlView.build('select * from table', { where: {
or : [
{ name: 'briggs' },
{ occupation: 'unknown' }
]
}})
The following modifiers are available to use when building queries
'lt'
'lte'
'gt'
'gte'
'not'
'like'
'contains'
'startsWith'
'endsWith'
sqlView.build('select * from table', { where: { age: { lte: 30 }}})
Allow you refine the results that are returned from a query. The current options available are:
limit
skip
order
select
Limits the number of results returned from a query
sqlView.build('select * from table', { where: { name: 'foo' }, limit: 20 })
Returns all the results excluding the number of items to skip
sqlView.build('select * from table', { where: { name: 'foo' }, skip: 10 });
skip
and limit
can be used together to build up a pagination system.
sqlView.build('select * from table', { where: { name: 'foo' }, limit: 10, skip: 10 });
Results can be sorted by attribute name. Simply specify an attribute name for natural (ascending) order, or specify an asc or desc flag for ascending or descending order respectively.
// Sort by name in ascending order (default)
sqlView.build('select * from table', { where: { name: 'foo' }, order: 'name' });
// or
sqlView.build('select * from table', { where: { name: 'foo' }, order: 'name asc' });
// Sort by name in descending order and also in email
sqlView.build('select * from table', { where: { name: 'foo' }, order: ['name desc', 'email'] });
Apply a projection
// Returns only the field name
sqlView.build('select * from table', { where: { age: { lt: 30 } }, select: ['name'] })
Grouping
// Returns only the field name
sqlView.build('select * from table', { groupBy: 'state', sum: 'population' })
The group functions available are: sum, avg, max and min
Inspired by the query language of Waterline implemented by cnect
MIT © Andre Gloria
FAQs
Rewrite a select statement embedding a filter, sort, group or pagination using an otions object
The npm package sql-view receives a total of 1 weekly downloads. As such, sql-view popularity was classified as not popular.
We found that sql-view demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.
Security News
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.