apply-or

0.5.2 • Public • Published

apply-or

Invoke .apply if value is a function, otherwise, return default value.

Build Status Code Climate js-standard-style

npm install apply-or --save
npm stats

npm NPM downloads Dependency Status

Why?

Function.prototype.apply is normally sufficient; however, there are situations where it is useful to treat a value as a Function (invoke it) only if it is indeed a Function; otherwise, return it as-is. Calling .apply on a value that is not a function would cause an error.

Examples

delay.js
var apply = require('apply-or')
 
function delay (cb) {
  setTimeout(apply.bind(null, cb))
}
 
delay('Hello') // does nothing (because argument is not a function)
delay(console.log.bind(console, 'Hello, World')) // prints 'Hello, World' to stdout
divmax.js
var apply = require('apply-or')
 
function divmax (divisor) {
  return Math.max.apply(null, this.val) / divisor
}
 
var data = {
  val: [9, 7, 15, 12]
}
 
apply(divmax, 5, data)
//=> divmax.apply({ val: [9, 7, 15, 12] }, [5])
//=> 15 / 5
//=> 3

API

apply(func, args, self)

arguments
  • func: (Function) Function to be invoked.
  • args: (Array|*) Arguments to apply to function.
  • self: (Object) this value.
returns
  • (*) Result of applying function or default value.

Licenses

GitHub license

Package Sidebar

Install

npm i apply-or

Weekly Downloads

1

Version

0.5.2

License

MIT

Last publish

Collaborators

  • wilmoore