UNPKG

datapumps

Version:

Node.js ETL (Extract, Transform, Load) toolkit for easy data import, export or transfer between systems.

41 lines (36 loc) 1.2 kB
(function() { var Promise, mysqlMixin, __slice = [].slice; Promise = require('bluebird'); mysqlMixin = function(connection) { return function(target) { target._mysql = { connection: connection, query: Promise.promisify(connection.query) }; target.query = function() { var args, query; query = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; if (args != null) { return this._mysql.query(query, args); } else { return this._mysql.query(query); } }; return target.selectOne = function() { var args, query; query = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; return target.query(query, args).then(function(results) { if (results.length === 1) { return Promise.resolve(results[0]); } else if (results.length === 0) { return Promise.reject('Query returned no result'); } else { return Promise.reject('Query returned more than one result'); } }); }; }; }; module.exports = mysqlMixin; }).call(this);