Skip to main content

Quick Start

To quickly start validating forms with Schema Validator, follow these steps:

  1. Clone the library from the GitHub repository:
  git clone https://github.com/resourge/schema.git
  1. Install the library using either npm or yarn:
  npm install @resourge/schema --save
# OR
yarn add @resourge/schema
  1. Import the desired validation functions from the library:
  import { object, string, number, array } from '@resourge/schemas';
  1. Create a schema object that defines the structure of the form and its validation rules:
  const schema = object<User>({
name: string().min(5).required(),
age: number().min(18).required(),
location: object({
city: string().required(),
address: string().required(),
postalCode: string().postalCode(PostalCodes.PT).required(),
country: string().min(3).required(),
}).required(),
hobbies: array(string()).min(1).required(),
}).compile();
  1. Validate the form data using the schema:
  const schemaErrors = schema.validate(user)
const isValidUser = schema.isValid(user)

Compatibility

Schema Validator is compatible with:

Performance

The following benchmark results compare Schema Validator with other schema validators:

Normal

@resourge/schema x 18,634,802 ops/sec ±1.30%  (93 runs sampled)
Fast Validator x 1,632,544 ops/sec ±0.50% (92 runs sampled)
joi x 182,179 ops/sec ±1.15% (93 runs sampled)
zod x 52,358 ops/sec ±0.86% (89 runs sampled)
Yup x 8,573 ops/sec ±4.42% (81 runs sampled)
Fastest is [ '@resourge/schema' ]

Heavy (done with an array with 10,000 items)

@resourge/schema x    2,594 ops/sec ±0.80% (86 runs sampled)
Fast Validator x 227 ops/sec ±0.96% (82 runs sampled)
joi x 32.28 ops/sec ±2.86% (55 runs sampled)
zod x 21.99 ops/sec ±1.58% (40 runs sampled)
Yup x 15.65 ops/sec ±2.47% (43 runs sampled)
Fastest is [ '@resourge/schema' ]

Note: The performance may vary depending on the machine.

Known Bugs

  • Let's us know if any here.