Skip to content

u1502073/validator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

validator

First

see https://github.com/skaterdav85/validatorjs

Usage

npm i git://github.com/potentia-inc/validator.git#v1.2.x
const validator = require('validator')
const S = require('sanctuary')

const rule = { foo: 'required|string|between:3,10' }

validator (rule) ({ foo: 'abc' })  // => Right ({ foo: 'abc' })
validator (rule) ({ foo: 'a' })  // => Left ('...failure message.')

const v = validator(rule)(obj)
if (S.isLeft(v)) { console.error(v.value) /* validation failed */ }
if (S.isRight(v)) { console.log('passed!', v.value) /* validation passed */ }

Signature For The Main Validator Function

// validator :: Rule -> Object -> S.Either String Object
  • Rule is an alias type for ordinary object.
  • Object is the type for input object.
  • When the validation is passed, the output will be a Either Right with value the same as input object.
  • When the validation is failed, the output will be a Either Left with value a string with informative failure reason.

Rules For Crypto-addresses

  • Bitcoin: rule = { address: `required|string|bitcoinAddress:${network}` } // network: 'mainnet' | 'testnet'
  • Etherem: rule = { address: `required|string|ethereumAddress:${check}` } // check: 'checked' | 'unchecked'
  • Ripple: rule = { address: `required|string|rippleAddress` }

Rules For Crypto-address-tags

  • Ripple Tag: rule = { tag: 'string|rippleTag' }
  • EOS Memo: rule = { tag: 'string|eosMemo' }

Misc. Rules

  • Decimal Place: rule = { amount: 'required|string|numeric|decimal:5' }

    • { amount: '0.0001' } // passed
    • { amount: '0.00001' } // passed
    • { amount: '0.000010000' } // passed
    • { amount: '0.000001' } // failed
  • Positivity: rule = { amount: 'required|string|numeric|positive' }

    • { amount: '0.0001' } // passed
    • { amount: '+0.0001' } // passed
    • { amount: '-0.00001' } // failed
  • Printable: rule = { client_id: 'required|string|isprint' }

    • { client_id: 'alice' } // passed
    • { client_id: '_bob' } // passed
    • { client_id: '!carol ' } // passed
    • { client_id: "dave\x01" } // failed

Note

It is recommended to add a string requirement to all rules when validating addresses, tags, amounts.

About

A Simple Validatorjs Wrapper

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 100.0%