
Security News
Node.js Drops Bug Bounty Rewards After Funding Dries Up
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.
npm install fm --save
fm(value) → OO wrapperfm() inherits from fm.prototypevar fm = require('fm')
fm(callback).partial(...arguments)
fm.prototype.partial.apply(callback, arguments)
fm.late(method)fm(method).late()→ function that calls this[method]
fm.late('yes').call({ yes:function() { return 1 } }) // => 1
fm.late(0).call([function() { return this.length }]) // => 1
fm.bind(callback, scope, ...arguments)fm(callback).bind(scope, ...arguments)→ function that calls callback with this binded to scope, and prepends leading arguments
fm.bind(callback, scope) // basic bind
fm.bind(callback, scope, 'a', 'b', 'c') // bind with partial arguments
fm.partial(callback, ...arguments)fm(callback).partial(...arguments)→ function that calls callback with dynamic this, and prepends leading arguments
fm.partial(fm.got, 'a', 'b')('c') // => ['a', 'b', 'c']
fm.partial('got', 'a', 'b').call(fm, 'c') // => ['a', 'b', 'c']
fm.prototype.partial.apply(callback, array) // useful for array partials
fm.slice(callback, begin?, end?)fm(callback).slice(begin?, end?)→ function that calls callback with dynamic this, and arguments sliced by [].slice
fm.slice(function(a, b, c) {}, 0, 2) // => new function that accepts only 2 args
fm.slice(fm.bind, 0, 2) // => version of .bind that ignores extra arguments
fm.slice(fm.got, 1)('a', 'b', 'c') // => ['b', 'c']
fm.slice(fm.got, -2)('a', 'b', 'c') // => ['b', 'c']
fm.slice(fm.got, 1, 2)('a', 'b', 'c') // => ['b']
fm.stat(method)fm(method).stat()fm.stat([].slice) // => static slice() function
fm.stat({}.hasOwnProperty) // => static has() function
fm.flow(first, next)fm(first).flow(next)fm.flow(fm.constant(2), fm.constant(3))()// => 3
fm.constant(value)fm(value).constant()→ function that always returns value regardless of context or arguments
fm.constant() // => noop function
fm.constant()() // => undefined
fm.constant(true)() // => true
fm.eq(callback, index)fm(callback).eq(index)→ function that reduces the arguments passed to callback to the argument at the specified index
fm.eq(Number, 1)(10, 11, 12) // => 11
fm.eq(Number, -1)(10, 11, 12) // => 12
fm.got(...arguments)fm(head).got(...arguments)→ array of arguments received
fm.got() // => []
fm.got(0, 1, 2) // => [0, 1, 2]
fm.mixin(object)→ this
Works...everywhere! Tested in node, Chrome, FF, Opera, IE
npm install
npm test
FAQs
Function modulation utility module
We found that fm demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.