fillopts
v0.2.0
Published
Partial application for functions that accept options objects.
Downloads
3
Readme
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'});