<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: NodeQuery.js</title> <script src="scripts/prettify/prettify.js"> </script> <script src="scripts/prettify/lang-css.js"> </script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Source: NodeQuery.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>const QueryBuilder = require('./QueryBuilder'); // Map config driver name to code class name const dbDriverMap = new Map([ ['my', 'Mysql'], ['mysql', 'Mysql'], ['maria', 'Mysql'], ['mariadb', 'Mysql'], ['firebird', 'Firebird'], ['postgresql', 'Pg'], ['postgres', 'Pg'], ['pg', 'Pg'], ['sqlite3', 'Sqlite'], ['sqlite', 'Sqlite'], ['sqlserver', 'MSSQLServer'], ['mssql', 'MSSQLServer'] ]); /** * Class for connection management * * @param {object} config - connection parameters */ class NodeQuery { /** * Constructor * * @param {object} config - connection parameters * @param {string} config.driver - the database driver to use, such as mysql, sqlite, mssql, or pgsql * @param {object|string} config.connection - the connection options for the database * @param {string} config.connection.host - the ip or hostname of the database server * @param {string} config.connection.user - the user to log in as * @param {string} config.connection.password - the password to log in with * @param {string} config.connection.database - the name of the database to connect to * @example let nodeQuery = require('ci-node-query')({ * driver: 'mysql', * connection: { * host: 'localhost', * user: 'root', * password: '', * database: 'mysql' * } * }); * @example let nodeQuery = require('ci-node-query')({ * driver: 'sqlite', * connection: ':memory:' * }); */ constructor (config) { this.instance = null; if (config !== undefined) { const driverName = dbDriverMap.get(config.driver); if (!driverName) { throw new Error(`Selected driver (${config.driver}) does not exist!`); } const driver = require(`./drivers/${driverName}`); const Adapter = require(`./adapters/${driverName}`); this.instance = new QueryBuilder(driver, Adapter(config)); } } /** * Return an existing query builder instance * * @return {QueryBuilder} - The Query Builder object */ getQuery () { if (this.instance == null) { throw new Error('No Query Builder instance to return'); } return this.instance; } } module.exports = config => new NodeQuery(config); </code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-drivers_MariaDB.html">drivers/MariaDB</a></li><li><a href="module-drivers_MSSQLDriver.html">drivers/MSSQLDriver</a></li><li><a href="module-drivers_Mysql.html">drivers/Mysql</a></li><li><a href="module-drivers_Pg.html">drivers/Pg</a></li><li><a href="module-drivers_Sqlite.html">drivers/Sqlite</a></li></ul><h3>Classes</h3><ul><li><a href="NodeQuery.html">NodeQuery</a></li><li><a href="QueryBuilder.html">QueryBuilder</a></li><li><a href="Result.html">Result</a></li></ul> </nav> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Mon Feb 12 2018 14:58:25 GMT-0500 (EST) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>