0.1.2 • Published 9 years ago

yepok v0.1.2

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

yep ok

Build Status

alt tag
a command line argument validation helper

  • parse args with minimist
  • validate args
  • success -> return minimist
  • failure -> return '{arg-name: err0, err1, arg-name: ...}'

example

program.js

var yepok = require('yepok');
var validators = require('./my-validators.js');

yepok(process.argv.slice(2), validators, function(err, minimist){
  if (err) {
    console.log("ERROR:")
    return console.log(err);
  }
  console.log("MINIMIST:");
  console.log(minimist)

});

my-validators.js

var fs = require('fs')
var path = require('path');

var fileExists = function(parameter, callback){
  var absolutePath = path.resolve(parameter);
  fs.exists(absolutePath, function(exists){
    if (exists) return callback();
    callback("file does not exits: " + parameter);
  });
}; 

var isNumber = function(parameter, callback){
  var num = Number(parameter);
  if (isNaN(num)) return callback('not a number: ' + parameter);
  callback();
};

var isLTEQ2Char = function(parameter, callback){
  if (parameter.length <= 2) return callback();
  callback("not less that or equal to two characters: " + parameter);
};

var validators = {
  _: '*',
  file: fileExists,
  f: fileExists,
  num: isNumber,
  n: isNumber,
  cool: [isLTEQ2Char, isNumber],
  c: [isLTEQ2Char, isNumber],
  verbose: true,
  v: true
};

module.exports = validators;

RUN IT

$ node program.js anythin goes -f ./my-validators.js --num 100 -c 42 -v
MINIMIST:
{ _: [ 'anythin', 'goes' ],
  f: './my-validators.js',
  num: 100,
  c: 42,
  v: true }

BREAK IT

$ node program.js anything --file /etc/lul.unicorn -c wat -n eight -n meow -v 'bad news bears'
ERROR:
{  file: ['file does not exist: /etc/lulwat.unicorn'],
  n: ['not a number: eight', 'not a number: meow'],
  c: ['not less than or equal to two characters: wat', 'not a number: wat'],
  v: ['flag must not be followed by any parameters: bad news bears'] }

install

with npm do:

npm install yepok 

license

MIT

0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago