0.3.0 • Published 6 years ago

rattata v0.3.0

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

Rattata (WIP)

Simple data validation for JavaScript

Example

const rules = {
  firstName: r.withMessage(r.string, 'should be a string'),
  middleName: r.opt(r.string),
  lastName: r.string,
  age: r.xor(
    r.undefined,
    r.and(
      r.withMessage(r.integer, 'should be an integer'),
      r.withMessage(r.range(10, 99), 'should be between 10 and 99'),
    ),
  ),
  pokedex: r.validate({
    serialNumber: r.pattern(/\d\d\d\d-\d\d\d\d/),
    pokemonIds: r.array(
      withMessage(
        r.and(
          r.integer,
          r.range(1, 151)
      ), 'should be an integer between 1 and 151')
    ),
  }),
}

const props = {
  firstName: 42,
  // middleName is optional
  lastName: [],
  age: '100',
  pokedex: {
    serialNumber: '1234-5678',
    pokemonIds: [23, 1, 56, '11'],
  },
}

r
  .validate(rules, props)
  .then(() => {
    // validation successful
  })
  .catch(err => {
    // err {
    //   firstName: ['should be a string'],
    //   lastName: [],
    //   age: ['should be an integer', 'should be between 10 and 99'],
    //   pokedex: {
    //     'pokemonIds[i]': ['should be an integer between 1 and 151'],
    //   }
    // }
  })
0.3.0

6 years ago

0.2.0

6 years ago

0.1.0

6 years ago

0.0.2

6 years ago