0.1.2 • Published 9 years ago

angst v0.1.2

Weekly downloads
6
License
MIT
Repository
github
Last release
9 years ago

angst npm Version Build Status Coverage Status

Named arguments for JavaScript, adapted from AngularJS.

Usage

'use strict';

var angst = require('angst');

var argObj = {
  x: 1,
  y: 2
};

var fn = function(x, y) {
  return x + y;
};
console.log(angst(fn)(argObj)); //=> 3

var gn = function(x, z) {
  if (typeof z === 'undefined') {
    return 'z is undefined';
  }
  return x;
};
console.log(angst(gn)(argObj)); //=> 'z is undefined'

Because code minification mangles variable names, the above will work as expected only when unminified. If we cannot guarantee this, we must pass in an additional string array of the functions argument names to angst. For example:

var argObj = {
  x: 1,
  y: 2
};

var fn = function(x, y) {
  return x + y;
};
console.log(angst(fn, ['x', 'y'])(argObj)); //=> 3

See the tests for more usage examples.

API

var angst = require('angst');

var gn = angst(fn , argNames)

Takes a function fn, and returns a function gn that can be invoked using named arguments.

  • fn The function we want to invoke using named arguments. Throws if fn is not a function.
  • argNames A string array containing the names of the arguments expected by fn. This is mandatory if your code is going to be minified.

gn(argObj , context)

Applies arguments from argObj to our initial function fn, with this set to the specified context.

  • argObj An object literal that maps the argument names of fn to their values.
  • context The context for this when invoking fn.

angst.parse(fn)

Returns a string array containing the names of the arguments expected by fn.

  • fn The function to be parsed. Throws if fn is not a function.

Installation

Install via npm:

$ npm i --save angst

Credit

Most of this modules core logic and tests were adapted from AngularJS:

Changelog

  • 0.1.0
    • Initial release

License

MIT