Your IP : 216.73.216.40


Current Path : /var/www/html/test/wetty2/node_modules/cb2promise/
Upload File :
Current File : /var/www/html/test/wetty2/node_modules/cb2promise/index.js

'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