fillopts

0.2.0 • Public • Published

fillopts

Partially applied functions are really cool. However, partial application doesn't work too well for functions that use objects to emulate named arguments. Since that's such a common idiom in JS, we made this library to handle it.

var
  xhr = require('some-xhr-lib'),
  fillopts = require('fillopts'); // Or use the global or AMD in the browser.
 
// Create a new function with some options prefilled.
var myXHR = fillopts(xhr, {method: 'GET'});
 
// Call our function with some more options.
myXHR({url: 'http://example.com'}, callback);
 
// The above is equivalent to this:
xhr({method: 'GET', url: 'http://example.com'}, callback);

or use chaining:

var myXHR = fillopts(xhr).withOpts({method: 'GET'});
 
myXHR({url: 'http://example.com'}, callback);

You can also fill opts that aren't in the first position by passing an index. All of the following are equivalent:

fillopts(f, {name: 'Crusher'}, 1)();
fillopts(f).withOpts({name: 'Crusher'}, 1)();
f(undefined, {name: 'Crusher'});

Package Sidebar

Install

npm i fillopts

Weekly Downloads

0

Version

0.2.0

License

MIT

Last publish

Collaborators

  • matthewwithanm
  • lettertwo