New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

query-manager

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

query-manager

Server side sql scripts management.

latest
Source
npmnpm
Version
2.2.2
Version published
Maintainers
1
Created
Source

SQL query manager

  • new simple API
  • fast, lightweight node module
  • shortcut for queries
  • caching queries
  • customizable queries
  • well tested with Chai
  • Typescript support

Installation

npm install query-manager

Run tests

Run tests typing in terminal:

npm run test

or run code coverage typing:

npm run coverage

Markups

Put query identifier between @ signs.

  • Example 'file1.sql'
--@users.getAll@
SELECT * FROM users;

--    @   users.getAllActive   @
SELECT * 
FROM users
WHERE active = 1
;

--   @users.getBanned @ 
-- Some other comment here
-- another comment 
SELECT * 
FROM users
WHERE banned = 1
;
/* This is very important comment here! */

/*  @ users.getLastLogin   @ */
SELECT last_login 
FROM users
WHERE user_id = 234
;

/*
This query returns user profile.
 @users.getUserProfile@

 */
SELECT *
FROM profiles
WHERE id = {user_id}
;
/*
-- @ users.getFields @
*/
SELECT {field1}, {field2}
FROM users
WHERE email='{email_value}'
;

Live example

  • Go to /example directory. There is example.js script that shows usage of query-manager module.
  • Install dependencies with
npm install
  • Then run script with node
node example.js

Example snippet

var { QueryManager } = require('./../index.js');
var readFile = require('read-file');

var sqlTemplates = [
    './file1.sql',
    './file2.sql'
].map(function (filePath) {
    return readFile.sync(filePath, { encoding: 'utf8' });
});

var qm = new QueryManager(sqlTemplates);

console.log(qm.get('users.getAll')); // SELECT * FROM users;
console.log(qm.get('users.getLastLogin')); // SELECT last_login FROM users WHERE user_id = 234;

var userProfileOptions = {
    user_id: 345
};
console.log(qm.get('users.getUserProfile', userProfileOptions)); // SELECT * FROM profiles WHERE id = 345;

var userFieldsOptions = {
    field1: 'username',
    field2: 'email',
    email_value: 'john.doe@mail.com'
};
console.log(qm.get('users.getFields', userFieldsOptions)); // SELECT username, email FROM users WHERE email='john.doe@mail.com';

LICENCE

MIT

Keywords

sql

FAQs

Package last updated on 17 Jan 2018

Did you know?

Socket

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.

Install

Related posts