ts-runtime-validation
Generate bulletproof runtime type validation from your existing TypeScript interfaces. No manual schema writing, no decorators, just your TypeScript types.
✨ Key Features
Zero-effort validation
Automatically generates JSON Schema validators from TypeScript interfaces
Type-safe
Full TypeScript support with type inference and type guards
Incremental builds
File-based caching with MD5 change detection for faster subsequent builds
JSDoc annotations
Add validation rules directly in your TypeScript code using comments
export interface IUser {
/**
* @pattern ^[a-fA-F0-9]{24}$
*/
id: string;
/**
* @format email
*/
email: string;
/**
* @minimum 0
* @maximum 150
*/
age: number;
roles: string[];
} 🚀 Quick Start
Get up and running in minutes
Install
# Using yarn (recommended)
yarn add --dev ts-runtime-validation
yarn add ajv
# Using npm
npm install --save-dev ts-runtime-validation
npm install ajv Generate
# Generate validators
npx ts-runtime-validation
# With performance options
npx ts-runtime-validation --cache --progress Use
import { isValidSchema } from './validation';
if (isValidSchema(data, "#/definitions/IUser")) {
// data is now typed as IUser ✅
console.log(data.email);
} ⚡ Performance Features
Built for speed and developer experience
Parallel Processing
Concurrent file processing for improved performance
Smart Caching
MD5-based file change detection with intelligent caching
Bundle Optimization
Tree-shaking friendly exports and minified output
Progress Tracking
Visual feedback for long-running operations
📖 Documentation
Everything you need to get started
JSDoc Annotations
Supported validation constraints:
@minLength,
@maxLength,
@pattern,
@format @minimum,
@maximum,
@multipleOf @minItems,
@maxItems,
@uniqueItems CLI Options
Performance and configuration options:
--cache Enable incremental builds--progress Show progress bars--minify Compress output files--tree-shaking Optimize exports--lazy-load Defer validator initReady to get started?
Join developers using ts-runtime-validation to generate type-safe validators from their existing TypeScript code.