mirror of
https://github.com/shimataro/ssh-key-action.git
synced 2025-06-19 22:52:10 +10:00
28 lines
784 B
JavaScript
28 lines
784 B
JavaScript
'use strict';
|
|
const _ = require('lodash');
|
|
|
|
/**
|
|
* For some reason, Promise.promisifyAll does not work on npm.commands :(
|
|
* Promise.promisifyAll(npm.commands);
|
|
* So we have to do it manually.
|
|
*/
|
|
function rawPromisify(obj) {
|
|
_.each(obj, (method, name) => {
|
|
obj[`${name}Async`] = () => {
|
|
const args = [].slice.call(arguments);
|
|
const that = this;
|
|
return new Promise((resolve, reject) => {
|
|
args.push((err, results) => {
|
|
if (err) {
|
|
reject(err);
|
|
} else {
|
|
resolve(results);
|
|
}
|
|
});
|
|
return method.apply(that, args);
|
|
});
|
|
};
|
|
});
|
|
}
|
|
|
|
module.exports = rawPromisify;
|