mbland/custom-links

View on GitHub
lib/redis/promise-helper.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict'

/* Promise invocation utilities
 *
 * Eliminates a lot of boilerplate code for wrapping typical Node.js functions
 * that accept a `done(err, data)` callback.
 */
module.exports = class PromiseHelper {
  static do(cb) {
    return new Promise((resolve, reject) => {
      cb((err, data) => err ? reject(err) : resolve(data))
    })
  }

  static expect(expected, cb) {
    return PromiseHelper.do(cb).then(data => data === expected)
  }

  static map(collection, cb) {
    return Promise.all(collection.map(cb))
  }
}