2.0.21 • Published 6 years ago

rx-form v2.0.21

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

rx-form

Библиотека для создания валидируемых моделей и форм на базе json схем.

Установка

npm install rx-form --save

Обзор

Rx-form позоляет описывать модели данных любой сложности и вложенности. Используя модель можно фильтровать и валидировать данные, приходящие в бэкенд, а также создавать формы и с их помощью строить пользовательские интерфейсы на стороне клиента.

Применение

Обработка и проверка данных при регистрации пользователя

import { Model, types, validators } from 'rx-form';

const model = Model.object({
  username: types.string({
    filter: (value) => value.trim(),
    validator: [
      validators.presence(),
      validators.string({
        minLength: 3,
      }),
    ],
  }),
  email: types.string({
    filter: [
      (value) => value.trim(),
      (value) => value.toLowerCase(),
    ],
    validator: [
      validators.presence(),
      validators.email(),
    ],
  }),
  password: types.string({
    validator: [
      validators.presence(),
      validators.string({
        pattern: /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$/,
      }),
    ],
  }),
});

// valid case
model.set({
  username: ' John  ',
  email: 'JOHN@SomeMail.com',
  password: '11aaAA',
  unknownProperty: 'abc',
});
model.validate().then(() => {
  console.log('OK!');
  console.log(model.get());
});
// OK!
// { 
//   username: 'John',
//   email: 'john@somemail.com',
//   password: '11aaAA'
// }


// invalid case
model.set({
  username: ' John  ',
  email: 'invalid email',
  password: '11aaAA',
});
model.validate().catch(() => {
  console.log('ERROR!');
  console.log(model.getFirstError().toString());
})
// ERROR!
// email - is not a valid email

License

rx-form is released under the MIT license. See the LICENSE file for license text and copyright information.

2.0.21

6 years ago

2.0.20

6 years ago

2.0.19

6 years ago

2.0.18

6 years ago

2.0.17

6 years ago

2.0.16

6 years ago

2.0.14

6 years ago

2.0.13

6 years ago

2.0.12

6 years ago

2.0.11

6 years ago

2.0.10

6 years ago

2.0.9

6 years ago

2.0.6

6 years ago

2.0.5

6 years ago

2.0.4

6 years ago

1.3.0

7 years ago

1.2.2

7 years ago

1.2.0

7 years ago

1.1.2

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.17

7 years ago

1.0.16

7 years ago

1.0.15

7 years ago

1.0.14

7 years ago

1.0.13

7 years ago

1.0.12

7 years ago

1.0.11

7 years ago

1.0.10

7 years ago

1.0.9

7 years ago

1.0.8

7 years ago

1.0.7

7 years ago

1.0.6

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago