Skip to content

insin/chainable-check

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chainableCheck() travis status

Wraps a custom validation function with the same requiredness behaviour as React's React.PropTypes validators.

That is: the validaton function will not be called if the value it's supposed to validate isn't given (or is null), and the function will have an .isRequired property, which is a validation function which will return an Error if the value isn't given (or is null).

This is effectively just a standalone version of React's internal createChainableTypeChecker() function from ReactPropTypes.js.

Install

Node.js

chainableCheck() can be used on the server, or bundled for the client using an npm-compatible packaging system such as Browserify or webpack.

npm install --save chainable-check

Browser bundle

The browser bundle exposes a global chainableCheck variable.

You can find it in the /dist directory.

Usage

var chainableCheck = require('chainable-check')

var isEven = chainableCheck(function(props, propName, componentName, location) {
  var value = props[propName]
  if (isNaN(parseFloat(value)) || !isFinite(value) || parseFloat(value) % 2 !== 0) {
    return new Error(
      `Invalid ${locationName} \`${propName}\` supplied to ` +
      `\`${componentName}\`, expected an even number.`
    )
  }
})

var ExampleComponent = React.createClass({
  propTypes: {
    evenNumber: isEven
  , requiredEvenNumber: isEven.isRequired
  },

  // ...
})

MIT Licensed

About

Create React.PropTypes-alike validators with an isRequired property

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published