@kbml-tentacles/forms-yup
v3.0.0
Published
Yup validation adapter for @kbml-tentacles/forms.
Maintainers
Readme
@kbml-tentacles/forms-yup
Yup validation adapter for @kbml-tentacles/forms. Plug a Yup schema into a field validator — error paths, types, and messages flow through unchanged.
npm install yup @kbml-tentacles/core @kbml-tentacles/forms @kbml-tentacles/forms-yupQuick start
import * as y from "yup";
import { createFormContract } from "@kbml-tentacles/forms";
import { yup, yupAsync } from "@kbml-tentacles/forms-yup";
const contract = createFormContract()
.field("email", (f) =>
f<string>().default("").validate(yup(y.string().email("Invalid").required("Required"))),
)
.field("username", (f) =>
f<string>().default("").validateAsync(
yupAsync(y.string().test("avail", "Taken", async (v) => await isAvailable(v ?? ""))),
),
);API
yup(schema, opts?)— sync validator usingschema.validateSync({ abortEarly: false }). Each Yup issue maps to{ path, message, code }.yupAsync(schema)— async validator usingschema.validate({ abortEarly: false }). Pair with.validateAsync(...)for debounce + cancellation.
Documentation
- How-to: use a schema validator
- Reference:
docs/reference/validators
Peer dependencies
yup >=1.0@kbml-tentacles/core ^1.0.0@kbml-tentacles/forms ^1.0.0
License
MIT © Nikita Lumpov
