@uvalidation/plain
TypeScript icon, indicating that this package has built-in type declarations

0.9.3 • Public • Published

CircleCI

uvalidaiton

javascript validation library for different runtimes

Features

Imagine such data structure

Or it's another view

const a = {
    b: {
        e: null
    },
    c: {
        f: null,
        g: null,
    },
    d: {
        h: {
            i: null
        }
    },
}

As the author I have had some requirements which this library should cover:

  1. Validity of a field can depend on that field own value. E.g:
    1. Validity of b depends on b value
    2. Validity of e depends on e value
  2. Validity of a field can depend on any other field value. E.g:
    1. Validity of e depends on i and g values.
  3. Each field can have own error messages.
  4. Adding validation should not make me crazy.
  5. Validation can be Sync/Async
  6. Sync/Async validation can be run separately

Pros and cons

So main concern which this library addresses is complexity.

Currently I don't care about perfomance. It even wasn't measured.

Pros:

  1. Almost any(?) validation rule can be added.
  2. Validators / Relations are very flexible to configuration.
  3. Easy to write unit tests.
  4. Doesn't have additional dependencies.
  5. Can be used in different runtimes - nodejs or browser.
  6. Different bundles:
  • umd with es5
  • commonjs with es6
  • esm with es6

Cons:

  1. Sophisticated usage.
  2. No built-in validators / relations.
  3. No built-in functionality to display errors in form (for browser).

Examples

Read the concepts behind

There are multiple drivers:

Package Sidebar

Install

npm i @uvalidation/plain

Weekly Downloads

0

Version

0.9.3

License

MIT

Unpacked Size

104 kB

Total Files

171

Last publish

Collaborators

  • s3141p