module.exports = { 'promisify': promisify, 'resolve': resolve, 'reject': reject } var Q = require('q'); function promisify(fn, context) { return function() { var defer = Q.defer(); var args = Array.prototype.slice.call(arguments); args.push(function(err, val) { if (err !== null && err !== undefined) { return defer.reject(err); } return defer.resolve(val); }); fn.apply(context || {}, args); return defer.promise; }; } function resolve(data) { var defer = Q.defer(); defer.resolve(data); return defer.promise; } function reject(err) { var defer = Q.defer(); defer.reject(err); return defer.promise; }