astro-reactive-form/packages/validator
Fazza Razaq Amiarso 0853ca3b8f
fix: extends timeout for timed out test (#208)
* fix: extends timeout for timed out test

* fix: add dependent script to turbo test

* fix: disable threading for test

* fix: add timeout to vitest config

* chore: remove test-ci script

* fix: extends timeout to validator vitest config

* chore: conditionally disabling vitest threading on CI
2022-11-25 14:37:23 +01:00
..
core refactor: use @astro-reactive/common 2022-10-28 12:41:32 +02:00
test fix: extends timeout for timed out test (#208) 2022-11-25 14:37:23 +01:00
.editorconfig feat: create astro reactive validator (#90) 2022-10-15 16:32:02 +02:00
.eslintignore feat: create astro reactive validator (#90) 2022-10-15 16:32:02 +02:00
.eslintrc.cjs core: common directory for packages (#114) 2022-10-21 14:05:23 +02:00
.gitignore feat: create astro reactive validator (#90) 2022-10-15 16:32:02 +02:00
.prettierrc.cjs feat: create astro reactive validator (#90) 2022-10-15 16:32:02 +02:00
index.ts feat(validator): server-side rendered validation errors (#123) 2022-10-22 04:35:16 +02:00
package.json chore(library): implement turporepo (#206) 2022-11-23 20:05:07 +01:00
README.md refactor(form): deprecate labelPosition (#172) 2022-11-01 16:24:29 +01:00
RELEASE.md chore: release common, form, validator 2022-11-05 09:23:42 +01:00
tsconfig.json chore: update check and build scripts 2022-11-10 19:03:45 +01:00
Validator.astro refactor: use @astro-reactive/common 2022-10-28 12:41:32 +02:00
vitest.config.ts fix: extends timeout for timed out test (#208) 2022-11-25 14:37:23 +01:00

Astro Reactive Library Logo
Astro Reactive Validator
Set up validators for your forms easily.

Package information: NPM version Package information: NPM license Package information: NPM downloads Package information: NPM dependencies status

Installation

In your Astro project:

npm i @astro-reactive/validator @astro-reactive/form

Usage

Use in an Astro page:

---
import Form, { FormControl, FormGroup } from "@astro-reactive/form";
import { Validators } from "@astro-reactive/validator";

const form = new FormGroup([
  {
    name: "username",
    label: "Username",
    validators: [Validators.required],
  },
  {
    name: "email",
    label: "Email",
    validators: [Validators.email, Validators.required],
  },
  {
    name: "password",
    label: "Password",
    type: "password",
    validators: [Validators.required, Validators.minLength(8)],
  },
]);

// you can insert a control at any point
form.controls.push(
  new FormControl({
    type: "checkbox",
    name: "is-awesome",
    label: "is Awesome?",
  })
);

---

<Form showValidationHints={true} formGroups={form} />
<!-- 
  The `showValidationHints` attribute tells the Form component
  that you want to render validation hints. So far, these are:
    1. asterisks on required controls' labels
    2. controls with errors will become color red

  This property is optional and set to false by default,
  which keeps the Form component unstyled,
  and gives you have the freedom to style it yourself.
-->

Screenshots

Screen Shot 2022-10-15 at 1 31 11 PM

Validators available

  1. Validators.min(limit) - checks if number value is greater than or equal to limit
  2. Validators.max(limit) - checks if number value is less than or equal to limit
  3. Validators.required - checks if value is empty
  4. Validators.requiredChecked - checks if value is "checked"
  5. Validators.email - checks if value is a valid email
  6. Validators.minLength(limit) - checks if value length is greater than or equal to limit
  7. Validators.maxLength(limit) - checks if value length is less than or equal to limit

Form component

This validation library is designed to work with Astro Reactive Form, our package for generating dynamic forms.

We are opensource!

👉 All contributions are welcome. Let's make the validation library for Astro.

👉 This package is under rigorous development. See the change log.