# yiminghe/async-validator

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/yiminghe-async-validator).**

9,099 stars · 767 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/yiminghe/async-validator
- awesome-repositories: https://awesome-repositories.com/repository/yiminghe-async-validator.md

## Description

async-validator is a JavaScript schema validation library and asynchronous data validation engine. It verifies complex object structures and nested arrays by applying recursive rules and non-blocking, promise-based execution to ensure data integrity.

The library functions as both an object constraint validator and a data transformation pipeline. It allows for the sanitization, coercion, and formatting of input values through a sequence of functions that run before and after the primary validation process.

The engine covers a range of capabilities including recursive nested validation, the enforcement of standard schema constraints, and the integration of custom business logic via bespoke validator functions. It also provides tools for error message customization and localization through static strings or dynamic functions.

## Tags

### Data & Databases

- [Asynchronous Validators](https://awesome-repositories.com/f/data-databases/data-validation/asynchronous-validators.md) — Executes validation rules as promises to allow for non-blocking remote checks and database lookups.
- [Schema Validation Libraries](https://awesome-repositories.com/f/data-databases/schema-validation-libraries.md) — Functions as a library for validating data objects against defined schemas using asynchronous logic.
- [Standard Constraints](https://awesome-repositories.com/f/data-databases/schema-constraints/standard-constraints.md) — Implements built-in rules for type checking, required fields, and range limits to ensure data integrity. ([source](https://github.com/yiminghe/async-validator#readme))

### Programming Languages & Runtimes

- [Asynchronous Validation](https://awesome-repositories.com/f/programming-languages-runtimes/asynchronous-promise-interfaces/asynchronous-validation.md) — Provides a non-blocking validation engine that utilizes promises for checks requiring external network or database calls.
- [Asynchronous Validation Execution](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/runtimes/asynchronous-execution-engines/asynchronous-control-flows/promise-based-flow-control/promise-based-chains/asynchronous-validation-execution.md) — Uses a promise-based execution model to ensure slow or remote validation checks do not block the main thread.

### Software Engineering & Architecture

- [Object Constraint Validation Engines](https://awesome-repositories.com/f/software-engineering-architecture/contextual-validation-rules/dynamic-validation-rules/validation-rule-engines/object-constraint-validation-engines.md) — Checks objects against defined schemas and constraints to generate detailed reports of validation failures. ([source](https://github.com/yiminghe/async-validator#readme))
- [Custom Validation Rules](https://awesome-repositories.com/f/software-engineering-architecture/custom-validation-rules.md) — Offers a framework for extending validation logic with domain-specific checks via bespoke functions. ([source](https://github.com/yiminghe/async-validator#readme))
- [Asynchronous Validation Engines](https://awesome-repositories.com/f/software-engineering-architecture/custom-validation-rules/asynchronous-validation-engines.md) — Provides a validation system that processes complex object structures and nested arrays using non-blocking promise-based execution.
- [Custom Validation Functions](https://awesome-repositories.com/f/software-engineering-architecture/custom-validation-rules/asynchronous-validators/custom-validation-functions.md) — Provides support for executing both synchronous and asynchronous custom validation logic on specific object fields.
- [Data Logic Injection](https://awesome-repositories.com/f/software-engineering-architecture/data-logic-injection.md) — Enables the integration of custom business logic into the validation process for data objects.
- [Recursive Object Validation](https://awesome-repositories.com/f/software-engineering-architecture/data-schema-validation/data-type-validation/object-shape-validation/recursive-object-validation.md) — Recursively traverses nested object hierarchies and arrays to enforce structural correctness across deep data structures.
- [Runtime Schema Validations](https://awesome-repositories.com/f/software-engineering-architecture/data-schema-validation/runtime-schema-validations.md) — Provides a runtime engine to verify that objects match predefined schemas and constraints during execution.
- [Data Transformation Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/data-transformation-pipelines.md) — Implements a pipeline to sanitize, coerce, and format input values before and after the primary validation process.
- [Data Validation Schemas](https://awesome-repositories.com/f/software-engineering-architecture/data-validation-schemas.md) — Provides a comprehensive system for defining schemas and enforcing validation rules on JavaScript data objects. ([source](https://github.com/yiminghe/async-validator#readme))
- [Data Transformation Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/data-validation-schemas/data-transformation-pipelines.md) — Implements a sequence of transformation functions to sanitize and coerce input values before and after validation.
- [Constraint Mappings](https://awesome-repositories.com/f/software-engineering-architecture/rule-configuration-engines/optimization-rule-mapping/constraint-mappings.md) — Maps field descriptors to specific validator functions to enforce constraints based on types, patterns, and ranges.
- [Dynamic Error Message Resolution](https://awesome-repositories.com/f/software-engineering-architecture/dynamic-error-message-resolution.md) — Generates human-readable error messages by resolving expected and actual values at runtime based on the failure context.
- [Pre-Validation Transformations](https://awesome-repositories.com/f/software-engineering-architecture/runtime-value-validation/allowed-value-validations/single-value-validators/pre-validation-transformations.md) — Applies sanitization and coercion transformations to input values before they are processed by validation rules. ([source](https://github.com/yiminghe/async-validator#readme))
- [Validation Error Customizations](https://awesome-repositories.com/f/software-engineering-architecture/validation-error-customizations.md) — Allows developers to override default error messages with localized or dynamic text during the validation process. ([source](https://github.com/yiminghe/async-validator#readme))

### Web Development

- [JavaScript Schema Validation](https://awesome-repositories.com/f/web-development/javascript-schema-validation.md) — Verifies complex data objects against defined rules and constraints to ensure structural integrity within JavaScript applications.

### Part of an Awesome List

- [Form Validation](https://awesome-repositories.com/f/awesome-lists/devtools/form-validation.md) — Provides asynchronous validation capabilities suitable for maintaining responsiveness in user-submitted form data.
- [Data Validation](https://awesome-repositories.com/f/awesome-lists/devtools/data-validation.md) — Asynchronous data validation.

### Development Tools & Productivity

- [Value Transformations](https://awesome-repositories.com/f/development-tools-productivity/data-transformation/value-transformations.md) — Modifies input data values through transformation functions before and after the validation phase.
