2.1.0 • Published 8 years ago

checker-factory v2.1.0

Weekly downloads
4
License
MIT
Repository
github
Last release
8 years ago

Checker Factory

NPM version Build Status Coverage Status

Code Climate Dependencies DevDependencies

Checker Factory used by Deku Prop Type Validators

Install

npm install --save checker-factory

Usage

import checkerFactory from 'checker-factory'

const numberChecker = checkerFactory('number')

numberChecker.validate('hello', 'age')
// => TypeError: Expected age to be of type `number`, but got `string`

numberChecker.validate(3, 'age')
// => undefined

const requiredString = checkerFactory('string').isRequired

requiredString.validate(undefined, 'name')
// => Error: name is required

const evenNumberChecker = checkerFactory((prop, key) => {
  if (prop % 2 === 1) {
    return new Error(`Expected ${key} to be an even number`)
  }
})

evenNumberChecker.validate(3, 'id')
// => Error: Expected id to be an even number

const checkerWithName = checkerFactory('number', 'dog')
checkerWithName.name
// => 'dog'

API

checkerFactory(validator, name)

Returns a CheckerFactory with an isRequired getter and validate function.

validator

type: function | string

If validator is a string, then a typeof check will be performed. If validator is a function, then the function will be execution. The function is passed the prop value and the key name.

name

type: string

This is an optional value to retrieve a name for the checker factory.

License

MIT © Dustin Specker