anyargs

1.0.5 • Public • Published

AnyArgs

A small utility module that converts function arguments to an object for use within the function based on a supplied metadata object. This allows parameters to be passed in any order, making the resultant function very flexible.

Features

  • Adds type safety to function parameters
  • Adds ability to specify default parameters in any order
  • Adds ability to pass parameters in any order
  • Adds ability to skip parameters at any position in the function signature

NPM

Official home on NPM: https://www.npmjs.com/package/anyargs

Github

Official home on Github: https://github.com/eenewbsauce/anyargs

Setup

  • Install the module

    npm i anyargs

Usage

Add anyargs to your function

  • anyargs does not support multiple keys having the same type in the metadata object.
let anyArgs = require('anyargs');
 
function add(one, two, cb) {
  let metadata = {
    one: {
      type: 'number',
      required: true
    },
    two: {
      type: 'string',
      required: true
    },
    cb: {
      type: 'function',
      required: false,
      defaultValue: function() {}
    }
  };
 
  let args = anyArgs(arguments, metadata);
 
  return new Promise((resolve, reject) => {
    let sum = args.one + parseInt(args.two);
    resolve(sum);
    args.cb(sum);
  });
}

Use function how ever you'd like

let sum = add(1,'2', function(sum) {
  console.log(sum) //3   
});
 
let sumV2 = add(function(sum) {
  console.log(sum) // 7
}, '3', 4);

Tests

Run test suite

npm test

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.5
    2,669
    • latest

Version History

Package Sidebar

Install

npm i anyargs

Weekly Downloads

2,669

Version

1.0.5

License

ISC

Last publish

Collaborators

  • eenewbsauce