diff --git a/src/node/db/AuthorManager.js b/src/node/db/AuthorManager.js index 0c6e3f750..a17952248 100644 --- a/src/node/db/AuthorManager.js +++ b/src/node/db/AuthorManager.js @@ -21,7 +21,6 @@ var db = require("./DB"); var customError = require("../utils/customError"); var randomString = require('ep_etherpad-lite/static/js/pad_utils').randomString; -const thenify = require("thenify").withCallback; exports.getColorPalette = function() { return [ diff --git a/src/node/db/DB.js b/src/node/db/DB.js index c462ac303..17cf3080a 100644 --- a/src/node/db/DB.js +++ b/src/node/db/DB.js @@ -22,11 +22,10 @@ var ueberDB = require("ueberdb2"); var settings = require("../utils/Settings"); var log4js = require('log4js'); -const thenify = require("thenify").withCallback; const util = require("util"); // set database settings -var db = new ueberDB.database(settings.dbType, settings.dbSettings, null, log4js.getLogger("ueberDB")); +let db = new ueberDB.database(settings.dbType, settings.dbSettings, null, log4js.getLogger("ueberDB")); /** * The UeberDB Object that provides the database functions @@ -37,24 +36,25 @@ exports.db = null; * Initalizes the database with the settings provided by the settings module * @param {Function} callback */ -exports.init = thenify(function (callback) { +exports.init = function() { // initalize the database async - db.init(function(err) { - if (err) { - // there was an error while initializing the database, output it and stop - console.error("ERROR: Problem while initalizing the database"); - console.error(err.stack ? err.stack : err); - process.exit(1); - } else { - // everything ok - exports.db = db; + return new Promise((resolve, reject) => { + db.init(function(err) { + if (err) { + // there was an error while initializing the database, output it and stop + console.error("ERROR: Problem while initalizing the database"); + console.error(err.stack ? err.stack : err); + process.exit(1); + } else { + // everything ok, set up Promise-based methods + ['get', 'set', 'findKeys', 'getSub', 'setSub', 'remove', 'doShutdown'].forEach(fn => { + exports[fn] = util.promisify(db[fn].bind(db)); + }); - // set up Promise-based methods - ['get', 'set', 'findKeys', 'getSub', 'setSub', 'remove', 'doShutdown'].forEach(fn => { - exports[fn] = util.promisify(db[fn].bind(db)); - }); - - callback(null); - } + // exposed for those callers that need the underlying raw API + exports.db = db; + resolve(); + } + }); }); -}); +} diff --git a/src/node/db/SecurityManager.js b/src/node/db/SecurityManager.js index dcdbe6a62..e50a0b9c2 100644 --- a/src/node/db/SecurityManager.js +++ b/src/node/db/SecurityManager.js @@ -25,7 +25,6 @@ var sessionManager = require("./SessionManager"); var settings = require("../utils/Settings"); var log4js = require('log4js'); var authLogger = log4js.getLogger("auth"); -const thenify = require("thenify").withCallback; /** * This function controlls the access to a pad, it checks if the user can access a pad. diff --git a/src/package.json b/src/package.json index 11259e76d..2b5eb5c18 100644 --- a/src/package.json +++ b/src/package.json @@ -58,7 +58,6 @@ "slide": "1.1.6", "socket.io": "2.1.1", "swagger-node-express": "2.1.3", - "thenify": "^3.3.0", "tinycon": "0.0.1", "ueberdb2": "0.4.0", "uglify-js": "2.6.2",