JSPM

fillopts

0.2.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q24289F
  • License MIT

Partial application for functions that accept options objects.

Package Exports

  • fillopts

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fillopts) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

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'});