28 lines
809 B
JavaScript
28 lines
809 B
JavaScript
function promisify (client) {
|
|
Object.keys(Object.getPrototypeOf(client)).forEach(functionName => {
|
|
if (functionName.startsWith('$')) {
|
|
return
|
|
}
|
|
const originalFunction = client[functionName]
|
|
client[functionName] = (request, callback) => {
|
|
if (callback && typeof callback === 'function') {
|
|
return originalFunction.call(client, request, (error, response) => {
|
|
callback(error, response)
|
|
})
|
|
}
|
|
return new Promise((resolve, reject) => {
|
|
originalFunction.call(client, request, (error, response) => {
|
|
if (error) {
|
|
reject(error)
|
|
} else {
|
|
resolve(response)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
client[functionName].interceptors = originalFunction.interceptors
|
|
})
|
|
}
|
|
|
|
module.exports = promisify
|