Sha256: 8625517ffb0d993997302f1632fcf9d99f729e9b712426c241cea3ce7e05b086

Contents?: true

Size: 861 Bytes

Versions: 26

Compression:

Stored size: 861 Bytes

Contents

'use strict'

exports.fromCallback = function (fn) {
  return Object.defineProperty(function () {
    if (typeof arguments[arguments.length - 1] === 'function') fn.apply(this, arguments)
    else {
      return new Promise((resolve, reject) => {
        arguments[arguments.length] = (err, res) => {
          if (err) return reject(err)
          resolve(res)
        }
        arguments.length++
        fn.apply(this, arguments)
      })
    }
  }, 'name', { value: fn.name })
}

exports.fromPromise = function (fn) {
  return Object.defineProperty(function () {
    const cb = arguments[arguments.length - 1]
    if (typeof cb !== 'function') return fn.apply(this, arguments)
    else {
      delete arguments[arguments.length - 1]
      arguments.length--
      fn.apply(this, arguments).then(r => cb(null, r), cb)
    }
  }, 'name', { value: fn.name })
}

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
clapton-0.0.26 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.25 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.24 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.23 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.22 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.21 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.20 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.19 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.18 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.17 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.16 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.15 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.14 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.13 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.12 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.11 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.10 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.9 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.8 lib/clapton/javascripts/node_modules/universalify/index.js
clapton-0.0.7 lib/clapton/javascripts/node_modules/universalify/index.js