Timothy J Warren
7fbbff41c8
Start work of using promises to wrap connections and removing old callback api.
51 lines
1.1 KiB
JavaScript
Executable File
51 lines
1.1 KiB
JavaScript
Executable File
'use strict';
|
|
|
|
/**
|
|
* Class that wraps database connection libraries
|
|
*
|
|
* @private
|
|
* @param {Promise} instance - The connection object
|
|
*/
|
|
class Adapter {
|
|
/**
|
|
* Invoke an adapter
|
|
*
|
|
* @constructor
|
|
* @param {Promise} instance - Promise holding connection object
|
|
*/
|
|
constructor (instance) {
|
|
this.instance = instance;
|
|
}
|
|
|
|
/**
|
|
* Run the sql query as a prepared statement
|
|
*
|
|
* @param {String} sql - The sql with placeholders
|
|
* @param {Array} params - The values to insert into the query
|
|
* @return {Promise} - returns a promise if no callback is passed
|
|
*/
|
|
execute (sql, params) {
|
|
throw new Error('Correct adapter not defined for query execution');
|
|
}
|
|
|
|
/**
|
|
* Transform the adapter's result into a standard format
|
|
*
|
|
* @param {*} originalResult - the original result object from the driver
|
|
* @return {Result} - the new result object
|
|
*/
|
|
transformResult (originalResult) {
|
|
throw new Error('Result transformer method not defined for current adapter');
|
|
}
|
|
|
|
/**
|
|
* Close the current database connection
|
|
* @return {void}
|
|
*/
|
|
close () {
|
|
this.instance.then(conn => conn.end());
|
|
}
|
|
}
|
|
|
|
module.exports = Adapter;
|