0.1.2 • Published 10 years ago
angst v0.1.2
angst 
 
 
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 function’s 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)); //=> 3See 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 iffnis not a function.argNames— A string array containing the names of the arguments expected byfn. 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 offnto their values.context— The context forthiswhen invokingfn.
angst.parse(fn)
Returns a string array containing the names of the arguments expected by fn.
fn— The function to be parsed. Throws iffnis not a function.
Installation
Install via npm:
$ npm i --save angstCredit
Most of this module’s core logic and tests were adapted from AngularJS:
Changelog
- 0.1.0
- Initial release