The ValidationPowers object provides the val API, which simplifies schema creation and validation for various data types.

The val API supports creating schemas for objects, arrays, strings, numbers, booleans, dates, and more. It also includes advanced features like coercion, optional properties, and custom validation rules.

Features

  • Object Validation: Create schemas for objects with nested properties.
  • Array Validation: Validate arrays with constraints like minimum and maximum length.
  • Type Coercion: Automatically convert input types (e.g., strings to numbers or booleans).
  • Optional Properties: Allow properties to be optional or undefined.
  • Custom Validation: Add custom validation rules for specific use cases.
example

Importing and using val:

import { ValidationPowers } from "@andi/powers";

const { val } = ValidationPowers;

// Object schema example
const schema = val.object({
  id: val.number().min(1),
  name: val.string().minLength(3),
  isActive: val.boolean().optional(),
});

const data = { id: 1, name: "John", isActive: true };
const validatedData = schema.validate(data); // Passes
console.log(validatedData);

// Array schema example
const arraySchema = val.array(val.string().minLength(2)).minLength(1);
const arrayData = ["apple", "banana"];
const validatedArray = arraySchema.validate(arrayData); // Passes
console.log(validatedArray);
example

Using coercion:

const schema = val.object({
  id: val.number().coerce(),
  isActive: val.boolean().coerce(),
});

const data = { id: "42", isActive: "true" };
const validatedData = schema.validate(data); // { id: 42, isActive: true }
console.log(validatedData);

Hierarchy

  • ValidationPowers

Index

Accessors

Accessors

Static val

  • get val(): Val

Generated using TypeDoc