Source: index.js

/**
 * @description database
 * @module database
 */
var pg = require('pg')
/**
 * @description binds parameters and query to execute
 * @function executeQuery
 * @param {string} connection - connection string
 * @param {string} queryString - query to execute
 * @param {string[]} queryParameters - query parameters
 * @param {callback} callback - callback function
 * @since 1.0.0
 */
exports.executeQuery = function (connection, queryString, queryParameters, callback) {
  var handler = pgQuery.bind(undefined, queryString, queryParameters, function (result) {
    if (typeof callback !== 'undefined') callback(result)
    if (typeof queryParameters === 'function') queryParameters(result)
  })
  pg.connect(connection, handler)
}
/**
 * @description execute query and return result
 * @function pgQuery
 * @param {string} queryString - query to execute
 * @param {string[]} queryParameters - query parameters
 * @param {callback} callback - callback funtion
 * @since 1.0.0
 * @private
 */
function pgQuery (queryString, queryParameters, callback, error, client, done) {
  if (error) {
    callback(console.error('error fetching client from pool', error))
  }
  var results = []
  var query = (typeof queryParameters !== 'undefined')
    ? client.query(queryString, queryParameters) : client.query(queryString)
  query.on('row', function (row) {
    results.push(row)
  })
  query.on('end', function () {
    done()
    callback(results)
  })
  query.on('error', function (error) {
    done()
    callback(console.error('error running query', error))
  })
}