first commit
This commit is contained in:
27
util/grpc-promisify.js
Normal file
27
util/grpc-promisify.js
Normal file
@@ -0,0 +1,27 @@
|
||||
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
|
||||
Reference in New Issue
Block a user