Product
Introducing SSO
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
json-sql
Advanced tools
Readme
Node.js library for mapping mongo-style query objects to SQL queries.
This library is not a driver, it is only translator, you should use specific driver for your db (for example https://github.com/brianc/node-postgres for PostgreSQL) to execute result query.
Install it with NPM or add it to your package.json:
$ npm install json-sql
Then:
var jsonSql = require('json-sql')();
var sql = jsonSql.build({
type: 'select',
table: 'users',
fields: ['name', 'age'],
condition: {name: 'Max', id: 6}
});
sql.query
// sql string:
// select name, age from users where name = $p1 && id = 6;
sql.values
// hash of values:
// { p1: 'Max' }
Documentation is available at the ./docs directory.
Select with join:
var sql = jsonSql.build({
type: 'select',
table: 'users',
join: {
documents: {
on: {'user.id': 'documents.userId'}
}
}
});
sql.query
// select * from users join documents on user.id = documents.userId;
sql.values
// {}
Insert:
var sql = jsonSql.build({
type: 'insert',
table: 'users',
values: {
name: 'John',
lastname: 'Snow',
age: 24,
gender: 'male'
}
});
sql.query
// insert into users (name, lastname, age, gender) values ($p1, $p2, 24, $p3);
sql.values
// { p1: 'John', p2: 'Snow', p3: 'male' }
Update:
var sql = jsonSql.build({
type: 'update',
table: 'users',
condition: {
id: 5
},
modifier: {
role: 'admin'
age: 33
}
});
sql.query
// update users set role = $p1, age = 33 where id = 5;
sql.values
// { p1: 'admin' }
Remove:
var sql = jsonSql.build({
type: 'remove',
table: 'users',
condition: {
id: 5
}
});
sql.query
// delete from users where id = 5;
sql.values
// {}
For more examples, take a look at the ./docs directory or ./tests directory.
Clone repository from github, cd
into cloned dir and install dev dependencies:
$ npm install
Then run tests with command:
$ gulp test
Or run tests coverage with command:
$ gulp coverage
FAQs
node.js json to sql queries mapper
The npm package json-sql receives a total of 362 weekly downloads. As such, json-sql popularity was classified as not popular.
We found that json-sql demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 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.
Product
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.