From d84716adf8086edfd4b0093d2357ae55f385f309 Mon Sep 17 00:00:00 2001 From: Alan Shaw Date: Fri, 26 Jul 2019 17:09:28 +0100 Subject: [PATCH] refactor: use promise-nodeify License: MIT Signed-off-by: Alan Shaw --- package.json | 1 + src/lib/callbackify.js | 17 ---------------- src/pubsub/index.js | 44 ++++++++++++++++++++++++++++++++++++------ 3 files changed, 39 insertions(+), 23 deletions(-) delete mode 100644 src/lib/callbackify.js diff --git a/package.json b/package.json index bb5c78129..f9959164b 100644 --- a/package.json +++ b/package.json @@ -73,6 +73,7 @@ "once": "^1.4.0", "peer-id": "~0.12.2", "peer-info": "~0.15.1", + "promise-nodeify": "^3.0.1", "promisify-es6": "^1.0.3", "pull-defer": "~0.2.3", "pull-stream": "^3.6.9", diff --git a/src/lib/callbackify.js b/src/lib/callbackify.js deleted file mode 100644 index 3a041612d..000000000 --- a/src/lib/callbackify.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict' - -module.exports = (fn, opts) => { - opts = opts || {} - // Min number of non-callback args - opts.minArgs = opts.minArgs == null ? 0 : opts.minArgs - - return (...args) => { - const cb = args[args.length - 1] - - if (typeof cb !== 'function' || args.length === opts.minArgs) { - return fn(...args) - } - - fn(...args.slice(0, -1)).then(res => cb(null, res), cb) - } -} diff --git a/src/pubsub/index.js b/src/pubsub/index.js index 8562e9ea3..2738bd5ac 100644 --- a/src/pubsub/index.js +++ b/src/pubsub/index.js @@ -1,6 +1,6 @@ 'use strict' -const callbackify = require('../lib/callbackify') +const nodeify = require('promise-nodeify') // This file is temporary and for compatibility with legacy usage module.exports = (send, options) => { @@ -8,11 +8,43 @@ module.exports = (send, options) => { options = send } + const ls = require('./ls')(options) + const peers = require('./peers')(options) + const publish = require('./publish')(options) + const subscribe = require('./subscribe')(options) + const unsubscribe = require('./unsubscribe')(options) + return { - ls: callbackify(require('./ls')(options)), - peers: callbackify(require('./peers')(options)), - publish: callbackify(require('./publish')(options)), - subscribe: callbackify(require('./subscribe')(options), { minArgs: 2 }), - unsubscribe: callbackify(require('./unsubscribe')(options), { minArgs: 2 }) + ls: (options, callback) => { + if (typeof options === 'function') { + callback = options + options = {} + } + return nodeify(ls(options), callback) + }, + peers: (topic, options, callback) => { + if (typeof options === 'function') { + callback = options + options = {} + } + return nodeify(peers(topic, options), callback) + }, + publish: (topic, data, options, callback) => { + if (typeof options === 'function') { + callback = options + options = {} + } + return nodeify(publish(topic, data, options), callback) + }, + subscribe: (topic, handler, options, callback) => { + if (typeof options === 'function') { + callback = options + options = {} + } + return nodeify(subscribe(topic, handler, options), callback) + }, + unsubscribe: (topic, handler, callback) => { + return nodeify(unsubscribe(topic, handler), callback) + } } }