---
sidebar: true
excerpt: "the validation tool nobody asked for"
meta:
- name: description
  content: the validation tool nobody asked for
- name: keywords
  content: Alban, David, Becker, deno, web, javascript
---

# hoyams

the validation tool nobody asked for | hoyams = hold on you are missing something

- stack: deno, typescript
- repo: [github.com](https://github.com/adb-sh/hoyams)
- deno package: [deno.land](https://deno.land/x/hoyams)

## Concept

Rules are defined via a callback which retuns `true` or an error String. This is
so that you can define rules by using an or operator like this:

```javascript
new Rule((v) => typeof v === "string" || "is not a string");
```

or this:

```javascript
new Rule((v) =>
  typeof v === "string" && !!v.match(/^\w+@\w+\.\w+$/) ||
  "no valid email"
);
```

- If a executing a validation completes without an error an object with the same
  structure as the object given is returned.

- For creating powerful nested object rules there are some primites given:
  [How to use](https://deno.land/x/hoyams@v0.0.1#how-to-use)


