0.6.2 • Published 5 years ago

schematis v0.6.2

Weekly downloads
3
License
Apache-2.0
Repository
github
Last release
5 years ago

SCHEMATIS

Yes, I'm trying to create a JOI alternative more functional, and browser compatible.

Support on Beerpay

Hey dude! Help me out for a couple of :beers:!

Beerpay Beerpay


code style: prettier Travis (.org) Coveralls github GitHub repo size npm bundle size GitHub issues GitHub package.json dynamic Typescript, yes

Install

Usual way npm install schematis

Usage

It has many things to do but is it a good begin

Type String

Number rules validators

  • minLength(minLength: number, message: string): Minimum length
  • maxLength(maxLength: number, message: string): Maximum length
  • regular(reg: RegExp, message: string): Test regular expression
  • email(message: string): Test an Email regular expression
import types, { isRequired } from 'schematis'

const name = 'Ariel Pchara'
const country = ''
const city = 123

const checkRequiredString = types.string('Should be an string')(
  isRequired("This string can't be empty")
)

checkRequiredString(name) // null - because has no errors
checkRequiredString(country) // [{type: 'required', error: 'This string can\'t be empty'}] - is an empty string
checkRequiredString(city) // [{type: 'string', error: 'Should be an string'}] - is not a string

Type Number

Number rules validators

  • min(minValue: number, message: string): Minimum value
  • max(maxValue: number, message: string): Maximum value
  • pair(message: string): Pair number
  • odd(message: string): Odd number
import types, { pair } from 'schematis'

const age = 35

const checkNumber = types.number('Should be a number')
const checkNumberPair = checkNumber(pair())

checkNumber()(age) // null -  its a number
checkNumberPair(age) // [{type: 'pair', error: true}] - its a number
checkNumberPair(20) // null -  20 is a pair number

Type Object

import types, { key, isRequired } from 'schematis'

const user = {
  name: 'Ariel Pchara',
  country: '',
  city: 123
}

const checkRequiredString = types.string('Should be an string')(
  isRequired("This string can't be empty")
)

const checkUserObject = types.object('Should be an object')(
  key('name')(checkRequiredString),
  key('country')(checkRequiredString),
  key('city')(checkRequiredString),
)

checkUserObject(user)
/**
 * [
 *  {type: 'key', ref: 'country', error: [{type: 'required': error: 'This string can't be empty'}] }
 *  {type: 'key', ref: 'city', error: [{type: 'string': error: 'Should be an string'}] }
 * ]
 * /

Type Array

import types, { elementType, isRequired } from 'schematis'

const arrayScheme = types.array()(
  elementType(types.number()(
    min(0), max(10)
  )
))

arrayScheme([4, 5, 10, 9.6])
// null
arrayScheme([4, 5, 100, 9.6])
/**
 * [
 *  {type: 'elementType', ref: 100, error: [{type: 'max': error: true}] }
 * ]
 * /

Other Types

  • boolean
  • date
0.6.2

5 years ago

0.6.1

5 years ago

0.6.0

5 years ago

0.5.1

5 years ago

0.5.0

5 years ago

0.4.0

5 years ago

0.3.8

5 years ago

0.3.7

5 years ago

0.3.5

5 years ago

0.3.4

5 years ago

0.3.2

5 years ago

0.3.0

5 years ago

0.2.0

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago