Source: node-query.js

"use strict";

/** @module node-query */
var NodeQuery = function() {

	var instance = null;

	/**
	 * Create a query builder object
	 *
	 * @alias module:node-query
	 * @param {String} drivername - The name of the database type, eg. mysql or pg
	 * @param {Object} connObject - A connection object from the database library you are connecting with
	 * @param {String} [connLib] - The name of the db connection library you are using, eg. mysql or mysql2. Optional if the same as drivername
	 * @return {queryBuilder}
	 */
	this.init = function (driverType, connObject, connLib) {
		connLib = connLib || driverType;

		var fs = require('fs'),
			qb = require('./query-builder');

		var paths = {
			driver: __dirname + '/drivers/' + driverType + '.js',
			adapter: __dirname + '/adapters/' + connLib + '.js'
		};

		Object.keys(paths).forEach(function(type) {
			if ( ! fs.existsSync(paths[type]))
			{
				console.log(paths[type]);
				throw new Error('Selected ' + type + ' does not exist!');
			}
		});

		instance = qb(require(paths.driver), require(paths.adapter)(connObject));

		return instance;
	};

	/**
	 * Return an existing query builder instance
	 *
	 * @return {queryBuilder}
	 */
	this.getQuery = function () {
		if ( ! instance) {
			throw new Error("No Query Builder instance to return");
		}

		return instance;
	};

};



module.exports = new NodeQuery();
DocStrap Copyright © 2012-2014 The contributors to the JSDoc3 and DocStrap projects.
Documentation generated by JSDoc 3.3.0-beta1 on Wed Jan 28th 2015 using the DocStrap template.