|
1 | 1 | 'use strict' |
2 | 2 |
|
| 3 | +const promisify = require('promisify-es6') |
| 4 | + |
3 | 5 | module.exports = (send) => { |
4 | 6 | return { |
5 | | - add (args, opts, callback) { |
| 7 | + add: promisify((args, opts, callback) => { |
6 | 8 | if (typeof opts === 'function' && |
7 | | - callback === undefined) { |
| 9 | + !callback) { |
8 | 10 | callback = opts |
9 | 11 | opts = {} |
10 | 12 | } |
11 | | - return send({ |
| 13 | + |
| 14 | + // opts is the real callback -- |
| 15 | + // 'callback' is being injected by promisify |
| 16 | + if (typeof opts === 'function' && |
| 17 | + typeof callback === 'function') { |
| 18 | + callback = opts |
| 19 | + opts = {} |
| 20 | + } |
| 21 | + |
| 22 | + if (args && typeof args === 'object') { |
| 23 | + opts = args |
| 24 | + args = undefined |
| 25 | + } |
| 26 | + |
| 27 | + send({ |
12 | 28 | path: 'bootstrap/add', |
13 | 29 | args: args, |
14 | 30 | qs: opts |
15 | 31 | }, callback) |
16 | | - }, |
17 | | - rm (args, opts, callback) { |
| 32 | + }), |
| 33 | + rm: promisify((args, opts, callback) => { |
18 | 34 | if (typeof opts === 'function' && |
19 | | - callback === undefined) { |
| 35 | + !callback) { |
20 | 36 | callback = opts |
21 | 37 | opts = {} |
22 | 38 | } |
23 | | - return send({ |
| 39 | + |
| 40 | + // opts is the real callback -- |
| 41 | + // 'callback' is being injected by promisify |
| 42 | + if (typeof opts === 'function' && |
| 43 | + typeof callback === 'function') { |
| 44 | + callback = opts |
| 45 | + opts = {} |
| 46 | + } |
| 47 | + |
| 48 | + if (args && typeof args === 'object') { |
| 49 | + opts = args |
| 50 | + args = undefined |
| 51 | + } |
| 52 | + |
| 53 | + send({ |
24 | 54 | path: 'bootstrap/rm', |
25 | 55 | args: args, |
26 | 56 | qs: opts |
27 | 57 | }, callback) |
28 | | - }, |
29 | | - list (opts, callback) { |
| 58 | + }), |
| 59 | + list: promisify((opts, callback) => { |
30 | 60 | if (typeof (opts) === 'function') { |
31 | 61 | callback = opts |
32 | 62 | opts = {} |
33 | 63 | } |
34 | | - return send({ |
| 64 | + send({ |
35 | 65 | path: 'bootstrap/list', |
36 | 66 | qs: opts |
37 | 67 | }, callback) |
38 | | - } |
| 68 | + }) |
39 | 69 | } |
40 | 70 | } |
0 commit comments