| 123456789101112131415161718192021222324 | 
							- 'use strict'
 
- exports.fromCallback = function (fn) {
 
-   return Object.defineProperty(function (...args) {
 
-     if (typeof args[args.length - 1] === 'function') fn.apply(this, args)
 
-     else {
 
-       return new Promise((resolve, reject) => {
 
-         args.push((err, res) => (err != null) ? reject(err) : resolve(res))
 
-         fn.apply(this, args)
 
-       })
 
-     }
 
-   }, 'name', { value: fn.name })
 
- }
 
- exports.fromPromise = function (fn) {
 
-   return Object.defineProperty(function (...args) {
 
-     const cb = args[args.length - 1]
 
-     if (typeof cb !== 'function') return fn.apply(this, args)
 
-     else {
 
-       args.pop()
 
-       fn.apply(this, args).then(r => cb(null, r), cb)
 
-     }
 
-   }, 'name', { value: fn.name })
 
- }
 
 
  |