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

user.jsonschema.ts
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

1

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
2

Generate

# Generate validators
npx ts-runtime-validation

# With performance options
npx ts-runtime-validation --cache --progress
3

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:

Strings: @minLength, @maxLength, @pattern, @format
Numbers: @minimum, @maximum, @multipleOf
Arrays: @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 init

Ready to get started?

Join developers using ts-runtime-validation to generate type-safe validators from their existing TypeScript code.