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');
var myXHR = fillopts(xhr, {method: 'GET'});
myXHR({url: 'http://example.com'}, callback);
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'});