This package has been deprecated

Author message:

please use vstack-validator >= 1.0

strulidator

1.2.1 • Public • Published

strulidator

Declarative validator for complex deep structures.

TODO

At current moment strulidator isn't ready for production. If you want to help me with release please read the first issue.

Reference

type Validator = (value: any) => boolean

type Constraint = (value: any) => ConstraintResult

type ConstraintResult = {
  valid: boolean,
  message: string | void,
  children: ConstraintResultMap | ConstraintResultArray | void
}

type ConstraintResultMap = {
  [key: string]: ConstraintResult
}

type ConstraintResultArray = Array<ConstraintResult>

Usage

const signInValidator = combineConstraints({
  keys: createObjectKeysConstraint({
    email: true,
    password: true,
    items: false,
  }),
  values: createObjectConstraint({
    email: combineConstraints({
      notNull,
      notEmpty,
      string,
      email,
    }),
    password: string,
    items: combineConstraints({
      notEmpty,
      array: createArrayConstraint(
        string
      )
    })
  })
})

print(signInValidator({
  email: 'vslinko@yahoo.com',
  password: '',
  items: ['']
}))
{ valid: true,
  message: null,
  children:
   { keys: { valid: true, message: null, children: null },
     values:
      { valid: true,
        message: null,
        children:
         { email:
            { valid: true,
              message: null,
              children:
               { notNull: { valid: true, message: null, children: null },
                 notEmpty: { valid: true, message: null, children: null },
                 string: { valid: true, message: null, children: null },
                 email: { valid: true, message: null, children: null } } },
           password: { valid: true, message: null, children: null },
           items:
            { valid: true,
              message: null,
              children:
               { notEmpty: { valid: true, message: null, children: null },
                 array:
                  { valid: true,
                    message: null,
                    children: [ { valid: true, message: null, children: null } ] } } } } } } }

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Published

Version History

  • Version
    Downloads (Last 7 Days)
    • Published

Package Sidebar

Install

npm i strulidator

Weekly Downloads

1

Version

1.2.1

License

MIT

Last publish

Collaborators

  • vslinko