1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| module.exports = function promisify(f, o) {
| const ctx = (o && o.context) || null;
| return function promisify_wrap() {
| const args = Array.from(arguments);
| return new Promise(function promisify_resolver(resolve, reject) {
| args.push(function promisify_callback(err, value) {
| if (err) {
| return reject(err);
| }
| return resolve(value);
| });
| f.apply(ctx, args);
| });
| };
| };
|
|