Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
### v5.0.9
- Add async versions of driver functions ([851](../../pull/851)

### v5.0.8
- Improve Typescript typings - add offset prop to find options ([850](../../pull/850)

Expand Down
11 changes: 11 additions & 0 deletions lib/Drivers/DML/_utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
var Promise = require("bluebird");

function promisifyFunctions (target, functions) {
functions.forEach(function (fnName) {
target[fnName + 'Async'] = Promise.promisify(target[fnName]);
});
};

module.exports = {
promisifyFunctions: promisifyFunctions,
};
5 changes: 5 additions & 0 deletions lib/Drivers/DML/mongodb.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
var Utilities = require("../../Utilities");
var mongodb = require("mongodb");
var Promise = require("bluebird");
var util = require("util");
var _ = require('lodash');

Expand Down Expand Up @@ -440,6 +441,10 @@ function convertToDBVal(key, value, timezone) {
return value;
}

['ping', 'find', 'count', 'insert', 'update', 'remove', 'clear',].forEach(function (fnName) {
Driver.prototype[fnName + 'Async'] = Promise.promisify(Driver.prototype[fnName]);
});

Object.defineProperty(Driver.prototype, "isSql", {
value: false
});
3 changes: 3 additions & 0 deletions lib/Drivers/DML/mysql.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ var _ = require("lodash");
var mysql = require("mysql");
var Query = require("sql-query").Query;
var shared = require("./_shared");
var utils = require("./_utils");
var DDL = require("../DDL/SQL");

exports.Driver = Driver;
Expand Down Expand Up @@ -290,6 +291,8 @@ Driver.prototype.propertyToValue = function (value, property) {
return value;
};

utils.promisifyFunctions(Driver.prototype, ['ping', 'execSimpleQuery', 'find', 'count', 'insert', 'update', 'remove', 'clear']);

Object.defineProperty(Driver.prototype, "isSql", {
value: true
});
16 changes: 11 additions & 5 deletions lib/Drivers/DML/postgres.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
var _ = require("lodash");
var pg = require("pg");
var Query = require("sql-query").Query;
var shared = require("./_shared");
var DDL = require("../DDL/SQL");
var _ = require("lodash");
var Promise = require("bluebird");
var pg = require("pg");
var Query = require("sql-query").Query;
var shared = require("./_shared");
var utils = require("./_utils");
var DDL = require("../DDL/SQL");

exports.Driver = Driver;

Expand Down Expand Up @@ -95,6 +97,8 @@ function Driver(config, connection, opts) {

_.extend(this.constructor.prototype, functions);

this.constructor.prototype.execSimpleQueryAsync = Promise.promisify(this.constructor.prototype.execSimpleQuery);

this.aggregate_functions = [
"ABS", "CEIL", "FLOOR", "ROUND",
"AVG", "MIN", "MAX",
Expand Down Expand Up @@ -342,6 +346,8 @@ Driver.prototype.propertyToValue = function (value, property) {
return value;
};

utils.promisifyFunctions(Driver.prototype, ['ping', 'find', 'count', 'insert', 'update', 'remove', 'clear']);

Object.defineProperty(Driver.prototype, "isSql", {
value: true
});
Expand Down
2 changes: 2 additions & 0 deletions lib/Drivers/DML/redshift.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
var Promise = require("bluebird");
var util = require("util");
var postgres = require("./postgres");

Expand Down Expand Up @@ -42,3 +43,4 @@ Driver.prototype.insert = function (table, data, keyProperties, cb) {
}
}.bind(this));
};
Driver.prototype.insertAsync = Promise.promisify(Driver.prototype.insert);
17 changes: 14 additions & 3 deletions lib/Drivers/DML/sqlite.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ var util = require("util");
var sqlite3 = require("sqlite3");
var Query = require("sql-query").Query;
var shared = require("./_shared");
var utils = require("./_utils");
var DDL = require("../DDL/SQL");
var Promise = require("bluebird");

exports.Driver = Driver;

Expand Down Expand Up @@ -212,12 +212,21 @@ Driver.prototype.remove = function (table, conditions, cb) {

Driver.prototype.clear = function (table, cb) {
var debug = this.opts.debug;
var self = this;

this.execQuery("DELETE FROM ??", [table], function (err) {
if (err) return cb(err);

this.execQuery("DELETE FROM ?? WHERE NAME = ?", ['sqlite_sequence', table], cb);
}.bind(this));
self.execQuery("SELECT count(*) FROM ?? WHERE type=? AND name=?;", ['sqlite_master', 'table', 'sqlite_sequence'], function (err, data) {
if (err) return cb(err);

if (data[0] && data[0]['count(*)'] === 1) {
self.execQuery("DELETE FROM ?? WHERE NAME = ?", ['sqlite_sequence', table], cb);
} else {
cb();
}
});
});
};

Driver.prototype.valueToProperty = function (value, property) {
Expand Down Expand Up @@ -355,6 +364,8 @@ Driver.prototype.propertyToValue = function (value, property) {
return value;
};

utils.promisifyFunctions(Driver.prototype, ['ping', 'execSimpleQuery', 'find', 'count', 'insert', 'update', 'remove', 'clear']);

Object.defineProperty(Driver.prototype, "isSql", {
value: true
});
Expand Down
Loading