Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Oct 20, 2022. It is now read-only.
/ mst-validatejs Public archive

Brings validation support to mobx-state-tree powered by validate.js

License

Notifications You must be signed in to change notification settings

skellock/mst-validatejs

Repository files navigation

mst-validatejs

Brings validation support to mobx-state-tree powered by validate.js.

Requirements

  • mobx-state-tree 2.x or 3.x
  • validate.js >= 0.11

Installing

yarn add mst-validatejs

How To Use

This library offers a withValidations extension that you can use to extend your models giving it 3 new views:

  • .errors
  • .isValid
  • .isInvalid

Using the .extend function on an mst model, you can add your validations in there. Check out the test directory here for a bigger example using credit cards.

import { types } from "mobx-state-tree"
import { withValidations } from "mst-validatejs"

export const UserModel = types
  .model("User")
  .props({
    name: "",
    age: 69,
  })
  .extend(
    // here we go!
    withValidations({
      name: {
        length: { minimum: 1, message: "name is required" },
      },
      age: {
        numericality: {
          onlyInteger: true,
          greaterThanOrEqualTo: 0,
          lessThan: 110,
          message: "liar",
        },
      },
    }),
  )

Find more about validate.js, it's a pretty great library.

Contributing?

Yes plz!

Fork it, Clone it, Branch it, Yarn it
Build it, Test it, Push it, PR it

To run the tests, I like to open two shells yarn test:compile:watch and yarn ava --watch.

About

Brings validation support to mobx-state-tree powered by validate.js

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.