Skip to content

Commit

Permalink
Added docs
Browse files Browse the repository at this point in the history
  • Loading branch information
ozziest committed Jan 13, 2025
1 parent 83a9ea1 commit 451a418
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 2 deletions.
87 changes: 87 additions & 0 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,90 @@ By the example, you would get the following response:
}
}
```

## Nested data validation

This feature allows dynamic traversal of nested data structures, supporting complex validation rules for paths like `users.*.addresses.*.city`.

It is inspired by Laravel's validation system and works seamlessly with arrays and objects, including deeply nested data.

```ts
import { validate, setLocales, en } from "robust-validator";

setLocales(en);

const data = {
secret: "some secret",
users: [
{
addresses: [
{
city: "New York",
},
{
city: "Istanbul",
},
],
},
{
addresses: [
{
city: "New York",
},
{
street: "Wall Street",
},
],
},
],
permissons: {
read: true,
write: true,
},
};

const definition = {
secret: "required|min:100",
"users.*.addresses.*.city": "required",
"permissons.read": "required|boolean",
"permissons.delete": "required|boolean",
};

const result = await validate(data, definition);
console.log(result);
```

And this is the content of the `result` variable:

```json
{
"isValid": false,
"isInvalid": true,
"fields": {
"secret": false,
"users.*.addresses.*.city": false,
"permissons.read": true,
"permissons.delete": false
},
"errors": {
"secret": [
{
"rule": "min",
"message": "The field must be at least 100."
}
],
"users.1.addresses.1.city": [
{
"rule": "required",
"message": "The field is required."
}
],
"permissons.delete": [
{
"rule": "required",
"message": "The field is required."
}
]
}
}
```
4 changes: 2 additions & 2 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ features:
- title: Declarative ✍🏽
details: Declarative rule definition allows you to save your rules in different places such as configuration files, databases, etc.
- title: Simple 🐤
details: Starting to validate data is very fast instead of creating complicated validation rules. You just need seconds.
details: Starting to validate data is very fast. Instead of creating complicated validation rules, you just need seconds.
- title: Proof of work 💪
details: Laravel-ish data validation rules are well-tested as a concept. This library is just another implementation for JavaScript.
- title: i18n 🇺🇳
details: Multi-language error messages are supported internally, unlike other libraries. It provides consistency.
details: Multi-language error messages are supported internally, unlike other libraries.
---

0 comments on commit 451a418

Please sign in to comment.