Skip to content

zitterorg/quia-quasi-voluptas

Repository files navigation

@zitterorg/quia-quasi-voluptas

GitHub Workflow Status (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 @zitterorg/quia-quasi-voluptas

API

@zitterorg/quia-quasi-voluptas.fromCallback(fn)

Takes a callback-based function to @zitterorg/quia-quasi-voluptas, and returns the universalified function.

Function must take a callback as the last parameter that will be called with the signature (error, result). @zitterorg/quia-quasi-voluptas 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 = @zitterorg/quia-quasi-voluptas.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!
})

@zitterorg/quia-quasi-voluptas.fromPromise(fn)

Takes a promise-based function to @zitterorg/quia-quasi-voluptas, and returns the universalified function.

Function must return a valid JS promise. @zitterorg/quia-quasi-voluptas does not ensure that a valid promise is returned.

function promiseFn (n) {
  return new Promise(resolve => {
    setTimeout(() => resolve(n), 15)
  })
}

const fn = @zitterorg/quia-quasi-voluptas.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