30+ Type Transformers
Automatically convert Date, BigInt, Set, Map, RegExp, Symbol, Error, WeakMap, WeakSet, ArrayBuffer, TypedArray, and URL — with explicit syntax and multi-dimensional arrays.
One Decorator to Rule Them All
@Quick on the class, @QType per property, @QAlias to rename fields and @QComputed for serializable getters. Dot-notation for nested transforms without decorating external classes.
Two-Layer Validation
checkIntegrity() checks types and security limits. @QRule + checkRules() applies declarative business logic. isValid() combines both in a single call.
Forms and Group Validation
@QField, @QRule and @QGroup on any class — no QModel needed. Validate step-by-step with qCheckRulesByGroup(). Async rules with timeout and serial/parallel mode.
7 Schema Formats
Export as JSON Schema, Zod, OpenAPI 3.0, Mongoose, TypeScript interface, GraphQL SDL, or AJV with a single getSchema() call. Documentation always in sync with your code.
Built-in MCP Server with 20 Skills
Claude, Cursor, or VS Code access 20 tools (create models, export schemas, simulate validations, diff models…) and 20 guided prompts. Your AI understands your codebase.
Instant Mocks with Faker
User.mock() generates a valid, typed object. User.mock(5) returns an array. Override fields with User.mock({ name: "Alice" }). Powered by @faker-js/faker, zero config.
Automatic Polymorphism
Receive a flat Payment array from the API and get correct Card or PayPal instances based on the JSON shape. No switch statements, no manual factories.
Security and Serialization Control
Built-in protection against circular references, URL/RegExp injection, and prototype pollution. excludeFields, omit/pick per-call, and unknownPropertyPolicy for public APIs.
Mixin with Any Base Class
QModel.extends(BaseClass) adds QuickModel superpowers to TypeORM entities, NestJS DTOs, or any existing class without breaking your inheritance hierarchy.
TC39 and Legacy Decorators
Compatible with TypeScript 3.4+ (experimentalDecorators) and TypeScript 5+ (TC39 standard). Choose the mode your project uses without changing anything else.
Lossless Serialization & Roundtrip
serialize() / fromJSON() are exact inverses. WeakMap/WeakSet stay out of JSON (GC-friendly). Roundtrip verifiable with the MCP roundtrip tool.
Works with the tools you already use
Released under the QuickModel Custom License.
If this project helps you, consider ☕ buying me a coffee!
Copyright © 2026 Mario Cabrero Volarich