5.2.12 • Published 1 month ago

vest v5.2.12

Weekly downloads
1,858
License
MIT
Repository
github
Last release
1 month ago

Vest

Vest - Validation Testing

npm version Build Status Known Vulnerabilities

What is Vest?

Vest is a validations library for JS apps that derives its syntax from modern JS frameworks such as Mocha or Jest. It is easy to learn due to its use of already common declarative patterns. It works great with user-input validation and with validating upon user interaction to provide the best possible user experience.

The idea behind Vest is that your validations can be described as a 'spec' or a contract that reflects your form or feature structure. Your validations run in production, and they are framework agnostic - meaning Vest works well with React, Angular, Vue, or even without a framework at all.

Example code:

// validation.js
import vest, { test, enforce } from 'vest';

const validate = vest.create('NewUserForm', data => {
  test('username', 'Must be at least 3 chars', () => {
    enforce(data.username).longerThanOrEquals(3);
  });

  test('email', 'Is not a valid email address', () => {
    enforce(data.email)
      .isNotEmpty()
      .matches(/[^@]+@[^\.]+\..+/g);
  });
});

export default validate;
// myFeature.js
import validate from './validation.js';

const res = validate({
  username: 'example',
  email: 'email@example.com',
});

res.hasErrors(); // returns whether the form has errors
res.hasErrors('username'); // returns whether the 'username' field has errors
res.getErrors(); // returns an object with an array of errors per field
res.getErrors('username'); // returns an array of errors for the `username` field

Why Vest?

  • Vest is really easy to learn, and you can easily take your existing knowledge of unit tests and transfer it to validations.
  • Vest takes into account user interaction and warn only validations.
  • Your validations are structured, making it very easy to read and write. All validation files look the same.
  • Your validation logic is separate from your feature logic, preventing the spaghetti code that's usually involved with writing validations.
  • Validation logic is easy to share and reuse across features.
  • If your backend is node, you can use the same Vest modules for both client-side and server-side validations.

Vest is a continuation of Passable by Fiverr.

5.2.12

1 month ago

5.2.11

1 month ago

5.2.10

2 months ago

5.2.9

3 months ago

5.2.8

3 months ago

5.2.7

4 months ago

5.2.6

4 months ago

5.2.5

4 months ago

5.2.4

4 months ago

5.2.3

5 months ago

5.1.5

6 months ago

5.1.4

6 months ago

5.1.3

6 months ago

5.1.2

7 months ago

5.2.2

5 months ago

5.2.1

5 months ago

5.2.0

5 months ago

5.1.1

7 months ago

5.1.0

8 months ago

5.0.0-dev-ae6b14

12 months ago

5.0.0-next-979ab9

11 months ago

5.0.0-next-1b0637

11 months ago

5.0.0-dev-ec989a

12 months ago

5.0.0-next-2cf993

11 months ago

5.0.5

8 months ago

5.0.4

8 months ago

5.0.3

8 months ago

5.0.2

8 months ago

5.0.1

8 months ago

5.0.0-next-83f17b

11 months ago

5.0.0-next-a084e9

11 months ago

5.0.0-next-04eea9

11 months ago

5.0.0-next-1de937

12 months ago

5.0.0-next-470211

12 months ago

5.0.0-next-9e961f

12 months ago

4.6.9

1 year ago

5.0.0-next-0fe843

12 months ago

5.0.0-next-ac1cf9

12 months ago

5.0.0-next-df4840

12 months ago

5.0.0-next-70dac5

12 months ago

4.6.11

1 year ago

4.6.10

1 year ago

5.0.0-next-ed535b

12 months ago

5.0.0-next-8222e6

12 months ago

4.6.8

1 year ago

4.6.6-dev-e99e42

2 years ago

4.6.7

2 years ago

4.6.6

2 years ago

4.6.5

2 years ago

4.7.0-dev-c4ba9b

2 years ago

4.4.2-dev-d13b14

2 years ago

4.4.3-dev-c786f7

2 years ago

5.0.0-dev-781e21

2 years ago

4.6.1

2 years ago

4.6.0

2 years ago

4.6.3

2 years ago

4.6.2

2 years ago

4.6.4

2 years ago

4.6.2-dev-b9b126

2 years ago

5.0.0-dev-040354

2 years ago

5.0.0

2 years ago

4.7.0-dev-f30a30

2 years ago

4.4.1

2 years ago

4.4.2

2 years ago

4.6.2-dev-310818

2 years ago

4.4.2-dev-afe5de

2 years ago

4.5.0-dev-9b46fb

2 years ago

4.6.2-dev-b07a89

2 years ago

4.5.0

2 years ago

4.4.2-dev-ae93bf

2 years ago

4.6.2-dev-fcaa09

2 years ago

4.3.4

2 years ago

4.4.0

2 years ago

4.4.0-dev-08ec91

2 years ago

4.3.2

2 years ago

4.3.1

2 years ago

4.3.3

2 years ago

4.3.0

2 years ago

4.3.2-dev-2805e3

2 years ago

4.2.3-dev-87ebfa

2 years ago

4.2.1-dev-ee64be

2 years ago

4.2.2

2 years ago

4.2.1

2 years ago

4.0.0-dev-e266d9

2 years ago

4.0.0-dev-cc2a13

2 years ago

4.1.3

2 years ago

4.1.0

2 years ago

4.1.2

2 years ago

4.1.1

2 years ago

4.0.4-dev-2d433c

2 years ago

4.0.0-dev-031d95

2 years ago

4.0.4-dev-338dee

2 years ago

4.0.3-dev-0bdac6

2 years ago

4.0.0-dev-37dfaa

2 years ago

4.0.1

2 years ago

4.0.0

2 years ago

4.0.3

2 years ago

4.0.2

2 years ago

4.2.0

2 years ago

4.0.0-dev-fc2efe

2 years ago

4.0.2-dev-6e9534

2 years ago

4.0.0-dev-1aae50

2 years ago

4.0.1-dev-6078f7

2 years ago

4.0.2-dev-72921c

2 years ago

4.0.0-dev-31f012

3 years ago

3.2.8

3 years ago

4.0.0-dev-7acb76

3 years ago

4.0.0-dev-8851ff

3 years ago

4.0.0-dev-366a8b

3 years ago

4.0.0-dev-f53683

3 years ago

3.2.6

3 years ago

3.2.7

3 years ago

4.0.0-dev-cc5cf5

3 years ago

4.0.0-dev-392d56

3 years ago

4.0.0-dev-deabb8

3 years ago

4.0.0-dev-1c6d8e

3 years ago

3.3.0-dev-ed4c51

3 years ago

3.3.0-dev-549cb1

3 years ago

3.3.0-dev-2be3a3

3 years ago

3.3.0-dev-92c1af

3 years ago

3.3.0-dev-5c9b45

3 years ago

3.3.0-dev-9a4b56

3 years ago

3.3.0-dev-55a2de

3 years ago

3.3.0-dev-f1f6d0

3 years ago

3.2.5

3 years ago

3.2.4

3 years ago

3.2.4-dev-c9788a

3 years ago

3.2.8-dev-6d7c74

3 years ago

3.2.8-dev-86e201

3 years ago

3.2.3

3 years ago

3.1.3

3 years ago

3.2.2

3 years ago

3.2.1

3 years ago

3.2.0

3 years ago

3.1.2

3 years ago

3.1.2-dev-d6cce2

3 years ago

3.1.2-dev-647185

3 years ago

3.1.2-dev-a2bd9c

3 years ago

3.1.2-dev-6a05bd

3 years ago

3.1.1

3 years ago

3.1.0

3 years ago

3.1.1-dev-b5e445

3 years ago

3.1.0-dev-22d3d0

3 years ago

3.1.0-dev-c11c85

3 years ago

3.1.1-dev-78b3d1

3 years ago

3.0.2

3 years ago

3.0.1-dev-32ceed

3 years ago

3.0.1

3 years ago

3.0.0

3 years ago

3.0.0-rc.1

3 years ago

3.0.0-dev-1aaf06

4 years ago

3.0.0-dev-c4124c

4 years ago

3.0.0-dev-3e4fa1

4 years ago

3.0.0-dev-8e6e76

4 years ago

3.0.0-dev-661ec4

4 years ago

3.0.0-dev-b3b059

4 years ago

2.3.0-dev-65c4a3

4 years ago

3.0.0-dev-7a0221

4 years ago

3.0.0-dev-bb7a82

4 years ago

2.3.0-dev-e33f88

4 years ago

2.3.0-dev-ee22a6

4 years ago

3.0.0-dev-30ec94

4 years ago

2.3.0-dev-42047a

4 years ago

2.3.0-dev-edac4f

4 years ago

2.3.0-dev-6f98b9

4 years ago

2.3.0-dev-aa2cb1

4 years ago

2.3.0-dev-3430bd

4 years ago

2.3.0-dev-afc096

4 years ago

3.0.0-dev-1b95dc

4 years ago

2.3.0-dev-32c368

4 years ago

2.3.0-dev-fe0186

4 years ago

3.0.0-dev-29745f

4 years ago

3.0.0-dev-2a40d2

4 years ago

2.3.0-dev-046792

4 years ago

2.3.0-dev-476dde

4 years ago

2.3.0-dev-51d4d8

4 years ago

3.0.0-dev-9c54f5

4 years ago

3.0.0-dev-c23dd4

4 years ago

2.3.0-dev-5d3b11

4 years ago

2.3.0-dev-7a965c

4 years ago

2.3.0-dev-2a6bf2

4 years ago

2.3.0-dev-ee5d5e

4 years ago

2.3.0-dev-12d646

4 years ago

2.2.3

4 years ago

2.2.2

4 years ago

2.2.2-dev-e3ea85

4 years ago

2.2.2-dev-33a3da

4 years ago

2.2.2-dev-8732e7

4 years ago

2.1.1-dev-9740e0

4 years ago

2.2.1-dev-b35d2f

4 years ago

2.2.1

4 years ago

2.2.0

4 years ago

2.2.0-dev-2a5ed4

4 years ago

2.2.0-dev-11c21c

4 years ago

2.2.0-dev-e1e9c5

4 years ago

2.2.0-dev-ee1118

4 years ago

2.2.0-dev-f70e2a

4 years ago

2.2.0-dev-3a24c9

4 years ago

2.2.0-dev-dd5a60

4 years ago

2.2.0-dev-310661

4 years ago

2.2.0-dev-8f6357

4 years ago

2.2.0-dev-d93aed

4 years ago

2.2.0-dev-056911

4 years ago

2.1.1-dev-960c17

4 years ago

2.2.0-dev-208af9

4 years ago

2.2.0-dev-3e02c6

4 years ago

2.1.1-dev-f56eea

4 years ago

2.2.0-dev-3c2a6d

4 years ago

2.2.0-dev-b53830

4 years ago

2.1.0

4 years ago

2.1.0-dev-e35626

4 years ago

2.1.0-dev-8be60f

4 years ago

2.1.0-dev-884d67

4 years ago

2.1.0-dev-cfc4c9

4 years ago

2.1.0-dev-2c6f61

4 years ago

2.1.0-dev-e3e248

4 years ago

2.1.0-dev-c9398f

4 years ago

2.1.0-dev-d2323c

4 years ago

2.1.0-dev-668bcd

4 years ago

2.1.0-dev-1a9d85

4 years ago

2.1.0-dev-408f5c

4 years ago

2.1.0-dev-34090b

4 years ago

2.1.0-dev-84ee90

4 years ago

2.1.0-dev-44a51a

4 years ago

2.1.0-dev-27551e

4 years ago

2.1.0-dev-b858db

4 years ago

2.1.0-dev-344f51

4 years ago

2.1.0-dev-a72f2d

4 years ago

2.1.0-dev-1ccd91

4 years ago

2.1.0-dev-26179c

4 years ago

2.1.0-dev-c26756

4 years ago

2.1.0-dev-8f422a

4 years ago

2.1.0-dev-0d6620

4 years ago

2.1.0-dev-6b2a08

4 years ago

2.1.0-dev-f26e8e

4 years ago

2.1.0-dev-5fdcf6

4 years ago

2.1.0-dev-33d8cc

4 years ago

2.1.0-dev-fdae91

4 years ago

2.1.0-dev-4a4969

4 years ago

2.1.0-dev-73392b

4 years ago

2.1.0-dev-50f109

4 years ago

2.1.0-dev-f73330

4 years ago

2.1.0-dev-d57cb7

4 years ago

2.1.0-dev-4b6363

4 years ago

2.1.0-dev-0404d6

4 years ago

2.1.0-dev-28fad3

4 years ago

2.1.0-dev-0960d2

4 years ago

2.1.0-dev-c5f11e

4 years ago

2.1.0-dev-4e62c0

4 years ago

2.1.0-dev-4aaeef

4 years ago

2.1.0-dev-91dbfd

4 years ago

2.1.0-dev-823e2b

4 years ago

2.1.0-dev-777aa8

4 years ago

2.1.0-dev-ee0460

4 years ago

2.1.0-dev-caed57

4 years ago

2.1.0-dev-136161

4 years ago

2.1.0-dev-6acd5e

4 years ago

2.1.0-dev-1a83ec

4 years ago

2.1.0-dev-f88f66

4 years ago

2.1.0-dev-d6ea96

4 years ago

2.1.0-rc.3

4 years ago

2.1.0-dev-ae870f

4 years ago

2.1.0-dev-60d48a

4 years ago

2.1.0-dev-dab0b6

4 years ago

2.1.0-rc.2

4 years ago

2.1.0-dev-02149e

4 years ago

2.1.0-rc.1

4 years ago

2.1.0-dev-ee3302

4 years ago

2.1.0-dev-c12c4e

4 years ago

2.1.0-dev-661601

4 years ago

2.1.0-dev-489a2f

4 years ago

2.1.0-dev-af6c11

4 years ago

2.1.0-dev-5596df

4 years ago

2.1.0-dev-d0a5a2

4 years ago

2.1.0-dev-b6f722

4 years ago

2.1.0-dev-6994fc

4 years ago

2.1.0-dev-7e1772

4 years ago

2.1.0-dev-2171a2

4 years ago

2.1.0-dev-f1910b

4 years ago

2.1.0-dev-4e2124

4 years ago

2.1.0-dev-c215fb

4 years ago

2.1.0-dev-d2ebf6

4 years ago

2.1.0-dev-ecae80

4 years ago

2.1.0-dev-47fb1f

4 years ago

2.1.0-dev-903436

4 years ago

2.1.0-dev-4ec5b5

4 years ago

2.1.0-dev-891a37

4 years ago

2.1.0-dev-695691

4 years ago

2.1.0-dev-cd888b

4 years ago

2.1.0-dev-53a327

4 years ago

2.1.0-dev-1bdcec

4 years ago

2.1.0-dev-be5561

4 years ago

2.1.0-dev-3ac980

4 years ago

2.1.0-dev-048424

4 years ago

2.1.0-dev-8263f8

4 years ago

2.1.0-dev-9d1fd7

4 years ago

2.1.0-dev-c060ad

4 years ago

2.1.0-dev-70c8b4

4 years ago

2.1.0-dev-5128ce

4 years ago

2.1.0-dev-19d588

4 years ago

2.1.0-dev-089ae4

4 years ago

2.1.0-dev-2d76a2

4 years ago

2.1.0-dev-6abb75

4 years ago

2.1.0-dev-372f0a

4 years ago

2.1.0-dev-ddcc89

4 years ago

2.1.0-dev-3c6792

4 years ago

2.0.0

4 years ago

2.0.0-dev-ab55f4

4 years ago

2.0.0-dev-103d63

4 years ago

14.0.0

4 years ago

17.0.0-dev

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

1.0.0-rc.5

4 years ago

1.0.0-rc.4

4 years ago

1.0.0-rc.3

4 years ago

1.0.0-rc.2

4 years ago

1.0.0-rc.1

4 years ago

0.0.1

9 years ago