UNPKG

cb2promise

Version:

Converts whatever standard NodeJS callback function into ES6 standard promise.

28 lines (21 loc) 628 B
'use strict' const mimicFn = require('mimic-fn') const sliced = require('sliced') function cb2promise (fn) { const len = arguments.length const args = sliced(arguments, 1, len) const promise = new Promise(function (resolve, reject) { args[len - 1] = createCallback(resolve, reject) fn.apply(null, args) }) mimicFn(promise, fn) return promise } function createCallback (resolve, reject) { return function (err) { if (err) return reject(err) const args = sliced(arguments, 1, arguments.length) return resolve.apply(null, args.length === 1 ? args : [args]) } } module.exports = cb2promise