Skip to content

validate schema

awekrx edited this page May 29, 2026 · 1 revision

validate-schema

Import

import { validateSchema } from '@dev-suite/decorators/validate-schema'

Category

  • parameter

Use Case

Validate argument with schema parser (zod/io-ts/etc).

Replaces

  • Manual schema.parse(arg) in each method
  • Repeated schema error handling boilerplate

Example 1

Without decorator

class PaymentController {
  create(payload: unknown) {
    const parsed = paymentSchema.parse(payload);
    return this.service.create(parsed);
  }
}

With decorator

import { validateSchema } from '@dev-suite/decorators/validate-schema';

class PaymentController {
  create(@validateSchema({ parse: paymentSchema.parse }) payload: PaymentInput) {
    return this.service.create(payload);
  }
}

Why better

  • Centralizes cross-cutting behavior.
  • Method/class/property code stays focused on domain logic.

Example 2

Without decorator

class NotificationController {
  send(message: unknown) {
    const parsed = messageSchema.parse(message);
    return this.sender.send(parsed);
  }
}

With decorator

import { validateSchema } from '@dev-suite/decorators/validate-schema';

class NotificationController {
  send(@validateSchema({ parse: messageSchema.parse }) message: MessageInput) {
    return this.sender.send(message);
  }
}

Why better

  • Second scenario reuses same policy without duplication.
  • Behavior is more consistent and easier to audit.

Clone this wiki locally