0.3.0 • Published 10 years ago

named-positional-args v0.3.0

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

Travis

named-positional-args

API support for arguments as both named and positional.

Depends on named-parameters lib for implementing the very helpful default, coerce, and require features to manage API arguments data types and values.

Install

npm install --save named-positional-args

Usage

Call your function API either of two ways, example:
makeIntoGold({c:3, a:1});      //1. named

makeIntoGold(1, undefined, 3); //2. positional
Implementation, example:
var namedPositionalArgs = require('named-positional-args');

function makeIntoGold(a, b, c) {
  arguments = namedPositionalArgs.apply(makeIntoGold, arguments).args();
  a = arguments[0]; b = arguments[1]; c = arguments[2];
 
  //rest of code...
}
Even better/simpler with ES6 destructuring:
function makeIntoGold(a, b, c) {
  [a, b, c] = 
    namedPositionalArgs.apply(makeIntoGold, arguments).args();

  //rest of code...
}
function makeIntoGold(a, b, c) {
  [a, b, c] = 
    namedPositionalArgs
    .apply(makeIntoGold, arguments)
    .default('a', 999)
    .coerce('b', 'boolean')
    .require('c', 'positive integer')
    .args();

  //rest of code...
}

Note: This is obviously silly to use for functions which only take a single {} object param anyways! ;)

Warning: If you compress/mangle your code, this way might break it!! (since the function arg names might no longer align internally as expected). To avoid this limitation, you can instead use a csvArgs string:

function makeIntoGold(a, b, c) { // these can get mangled now!
  [a, b, c] =
    namedPositionalArgs
    .apply('a, b, c', arguments) // these are the cannonical arg names
    .args();

  //rest of code...
}

API

  • .apply(funcName:Function, arguments) : Starts the argument parsing chain.

-or-

  • .apply(csvArgs:String, arguments) : Starts the argument parsing chain.

.default() : see default

.coerce() : see coerce

.require() : see require (alias: .demand())

.args() : Returns an Array akin to arguments.

.opts() : Returns an Object with arguments as name: value pairs.

Test

npm test

0.3.0

10 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago