fm
JavaScript function modulation module
npm install fm --save
API
- methods can be used statically or via OO syntax
fm()
fm(value)
→ OO wrapper
fm()
inherits from fm.prototype
var fm = fmprototypepartial
.late()
fm.late(method)
fm(method).late()
→ function that calls this[method]
fm // => 1fm // => 1
.bind()
fm.bind(callback, scope, ...arguments)
fm(callback).bind(scope, ...arguments)
→ function that calls callback with this
binded to scope, and prepends leading arguments
fm // basic bindfm // bind with partial arguments
.partial()
fm.partial(callback, ...arguments)
fm(callback).partial(...arguments)
→ function that calls callback with dynamic this
, and prepends leading arguments
fm'c' // => ['a', 'b', 'c']fm // => ['a', 'b', 'c']fmprototypepartial // useful for array partials
.slice()
fm.slice(callback, begin?, end?)
fm(callback).slice(begin?, end?)
→ function that calls callback with dynamic this
, and arguments
sliced by [].slice
fm // => new function that accepts only 2 argsfm // => version of .bind that ignores extra argumentsfm'a' 'b' 'c' // => ['b', 'c']fm'a' 'b' 'c' // => ['b', 'c']fm'a' 'b' 'c' // => ['b']
.stat()
fm.stat(method)
fm(method).stat()
- Convert an instance method into a static one. → function
fm // => static slice() functionfm // => static has() function
.flow()
fm.flow(first, next)
fm(first).flow(next)
- Create a new function that invokes the next function with the result the first function → function
fm// => 3
.constant()
fm.constant(value)
fm(value).constant()
→ function that always returns value regardless of context or arguments
fm // => noop functionfm // => undefinedfm // => true
.eq()
fm.eq(callback, index)
fm(callback).eq(index)
→ function that reduces the arguments passed to callback to the argument at the specified index
fm10 11 12 // => 11fm10 11 12 // => 12
.got()
fm.got(...arguments)
fm(head).got(...arguments)
→ array of arguments received
fm // => []fm // => [0, 1, 2]
.mixin()
fm.mixin(object)
→ this
Coverage
Works...everywhere! Tested in node, Chrome, FF, Opera, IE
Contribute
npm install
npm test