Wondering what’s next for npm?Check out our public roadmap! »

    universalify
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/universalify package

    2.0.0 • Public • Published

    universalify

    Travis branch Coveralls github branch npm npm

    Make a callback- or promise-based function support both promises and callbacks.

    Uses the native promise implementation.

    Installation

    npm install universalify

    API

    universalify.fromCallback(fn)

    Takes a callback-based function to universalify, and returns the universalified function.

    Function must take a callback as the last parameter that will be called with the signature (error, result). universalify does not support calling the callback with three or more arguments, and does not ensure that the callback is only called once.

    function callbackFn (n, cb) {
      setTimeout(() => cb(null, n), 15)
    }
     
    const fn = universalify.fromCallback(callbackFn)
     
    // Works with Promises:
    fn('Hello World!')
    .then(result => console.log(result)) // -> Hello World!
    .catch(error => console.error(error))
     
    // Works with Callbacks:
    fn('Hi!', (error, result) => {
      if (error) return console.error(error)
      console.log(result)
      // -> Hi!
    })

    universalify.fromPromise(fn)

    Takes a promise-based function to universalify, and returns the universalified function.

    Function must return a valid JS promise. universalify does not ensure that a valid promise is returned.

    function promiseFn (n) {
      return new Promise(resolve => {
        setTimeout(() => resolve(n), 15)
      })
    }
     
    const fn = universalify.fromPromise(promiseFn)
     
    // Works with Promises:
    fn('Hello World!')
    .then(result => console.log(result)) // -> Hello World!
    .catch(error => console.error(error))
     
    // Works with Callbacks:
    fn('Hi!', (error, result) => {
      if (error) return console.error(error)
      console.log(result)
      // -> Hi!
    })

    License

    MIT

    Install

    npm i universalify

    DownloadsWeekly Downloads

    30,340,182

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    4.64 kB

    Total Files

    4

    Last publish

    Collaborators

    • avatar