Skip to content

@Validate

Schema validation on field assignment or class construction via pluggable adapters (Zod, Yup, class-validator).

KindHybrid
Backendslegacy, stage3
Requires generatePartial (@Builder)

Example (Zod)

ts
import { Validate } from 'lombok-typescript/legacy';
import { z } from 'zod';
import 'lombok-typescript/validators/zod';

class Signup {
  @Validate(z.string().email())
  email: string = '';

  @Validate(z.number().int().min(18))
  age: number = 0;
}

Adapters

Install the validator library you use, then import its adapter once:

ts
import 'lombok-typescript/validators/zod';
import 'lombok-typescript/validators/yup';
import 'lombok-typescript/validators/class-validator';

Collecting errors

Pass { throwOnError: false } to collect errors on instance.validationErrors instead of throwing:

ts
@Validate(z.string().email(), { throwOnError: false })
email: string = '';

Builder integration

With @Data + @Builder, field validation runs at build() time (codegen emits runValidation calls). Builder setters stay unvalidated so you can chain partial state.

Config note

Per-decorator options override defaults. Global validate settings in lombok.config.ts apply to CLI/codegen paths in v0.9.0; runtime decorators default to zod unless you pass provider in options.

Released under the MIT License.