Permalink
Cannot retrieve contributors at this time
var Classes = Object.create(null); | |
/** | |
* Create a new Connection instance. | |
* @param {object|string} config Configuration or connection string for new MySQL connection | |
* @return {Connection} A new MySQL connection | |
* @public | |
*/ | |
exports.createConnection = function createConnection(config) { | |
var Connection = loadClass('Connection'); | |
var ConnectionConfig = loadClass('ConnectionConfig'); | |
return new Connection({config: new ConnectionConfig(config)}); | |
}; | |
/** | |
* Create a new Pool instance. | |
* @param {object|string} config Configuration or connection string for new MySQL connections | |
* @return {Pool} A new MySQL pool | |
* @public | |
*/ | |
exports.createPool = function createPool(config) { | |
var Pool = loadClass('Pool'); | |
var PoolConfig = loadClass('PoolConfig'); | |
return new Pool({config: new PoolConfig(config)}); | |
}; | |
/** | |
* Create a new PoolCluster instance. | |
* @param {object} [config] Configuration for pool cluster | |
* @return {PoolCluster} New MySQL pool cluster | |
* @public | |
*/ | |
exports.createPoolCluster = function createPoolCluster(config) { | |
var PoolCluster = loadClass('PoolCluster'); | |
return new PoolCluster(config); | |
}; | |
/** | |
* Create a new Query instance. | |
* @param {string} sql The SQL for the query | |
* @param {array} [values] Any values to insert into placeholders in sql | |
* @param {function} [callback] The callback to use when query is complete | |
* @return {Query} New query object | |
* @public | |
*/ | |
exports.createQuery = function createQuery(sql, values, callback) { | |
var Connection = loadClass('Connection'); | |
return Connection.createQuery(sql, values, callback); | |
}; | |
/** | |
* Escape a value for SQL. | |
* @param {*} value The value to escape | |
* @param {boolean} [stringifyObjects=false] Setting if objects should be stringified | |
* @param {string} [timeZone=local] Setting for time zone to use for Date conversion | |
* @return {string} Escaped string value | |
* @public | |
*/ | |
exports.escape = function escape(value, stringifyObjects, timeZone) { | |
var SqlString = loadClass('SqlString'); | |
return SqlString.escape(value, stringifyObjects, timeZone); | |
}; | |
/** | |
* Escape an identifier for SQL. | |
* @param {*} value The value to escape | |
* @param {boolean} [forbidQualified=false] Setting to treat '.' as part of identifier | |
* @return {string} Escaped string value | |
* @public | |
*/ | |
exports.escapeId = function escapeId(value, forbidQualified) { | |
var SqlString = loadClass('SqlString'); | |
return SqlString.escapeId(value, forbidQualified); | |
}; | |
/** | |
* Format SQL and replacement values into a SQL string. | |
* @param {string} sql The SQL for the query | |
* @param {array} [values] Any values to insert into placeholders in sql | |
* @param {boolean} [stringifyObjects=false] Setting if objects should be stringified | |
* @param {string} [timeZone=local] Setting for time zone to use for Date conversion | |
* @return {string} Formatted SQL string | |
* @public | |
*/ | |
exports.format = function format(sql, values, stringifyObjects, timeZone) { | |
var SqlString = loadClass('SqlString'); | |
return SqlString.format(sql, values, stringifyObjects, timeZone); | |
}; | |
/** | |
* Wrap raw SQL strings from escape overriding. | |
* @param {string} sql The raw SQL | |
* @return {object} Wrapped object | |
* @public | |
*/ | |
exports.raw = function raw(sql) { | |
var SqlString = loadClass('SqlString'); | |
return SqlString.raw(sql); | |
}; | |
/** | |
* The type constants. | |
* @public | |
*/ | |
Object.defineProperty(exports, 'Types', { | |
get: loadClass.bind(null, 'Types') | |
}); | |
/** | |
* Load the given class. | |
* @param {string} className Name of class to default | |
* @return {function|object} Class constructor or exports | |
* @private | |
*/ | |
function loadClass(className) { | |
var Class = Classes[className]; | |
if (Class !== undefined) { | |
return Class; | |
} | |
// This uses a switch for static require analysis | |
switch (className) { | |
case 'Connection': | |
Class = require('./lib/Connection'); | |
break; | |
case 'ConnectionConfig': | |
Class = require('./lib/ConnectionConfig'); | |
break; | |
case 'Pool': | |
Class = require('./lib/Pool'); | |
break; | |
case 'PoolCluster': | |
Class = require('./lib/PoolCluster'); | |
break; | |
case 'PoolConfig': | |
Class = require('./lib/PoolConfig'); | |
break; | |
case 'SqlString': | |
Class = require('./lib/protocol/SqlString'); | |
break; | |
case 'Types': | |
Class = require('./lib/protocol/constants/types'); | |
break; | |
default: | |
throw new Error('Cannot find class \'' + className + '\''); | |
} | |
// Store to prevent invoking require() | |
Classes[className] = Class; | |
return Class; | |
} |