0.1.0 • Published 10 years ago

asunder v0.1.0

Weekly downloads
3
License
MIT
Repository
github
Last release
10 years ago

asunder

A small library useful for splitting apart callbacks by their arguments.

Supports node.js require, AMD define, or no module loader at all (in the browser).

Install

npm install asunder

Example

var a = require('asunder');
var fs = require('fs');

fs.readFile('./node_modules/asunder.js', a.split(onError, onData));

function onError(err) {
  // oh noes
}

function onData(data) {
  // oh yiss
}

// This will print 0 1 2 3 4 to the console (with newlines between).
[1,2,3,4,5].forEach(a.sarg(printIndex));

function printIndex(index) {
  console.log(index);
}

Methods

asunder.args(fn, start, end, context)

Returns a function that when called, will execute fn with arguments starting at the zero-based index of start and optionally ending at the argument index before end. Think of it like calling Array.prototype.slice on a set of arguments to pass along to fn, because really, that's all this is doing. Optionally define a context in which to call fn.

asunder.withArgs(start, end)

A helper method to generate aliased asunder.args functions. For example, asunder.farg, asunder.sarg and asunder.targ are just asunder.withArgs(0), asunder.withArgs(1), and asunder.withArgs(2) respectively.

Example:

/* aliases for first, second, and third arguments */
asunder.farg = asunder.withArgs(0);
asunder.sarg = asunder.withArgs(1);
asunder.targ = asunder.withArgs(2);

asunder.farg(fn, context)

Returns a function that when called, will exectute fn with the first argument passed in, ignoring all other arguments. Optionally, fn can be called with a context.

asunder.sarg(fn, context)

The same as asunder.farg but uses the second argument passed in.

asunder.targ(fn, context)

The same as asunder.farg but uses the third argument passed in.

asunder.split(fn1, fn2, ..., fnn)

Returns a function that splits up the passed in arguments and calls them with a given set of functions. If fewer functions are provided than arguments passed in, the last function will be called with all remaining arguments.

Example:

var a = require('asunder');

function multi(callback) {
  callback('a','b','c');
}

function log(n) {
  return function() {
    var args = Array.prototype.slice.call(arguments);
    console.log('args', n, ':', args.join(','));
  };
}

multi(a.split(log(1), log(2)));

// will print:
// a
// b,c

License

MIT