-
Notifications
You must be signed in to change notification settings - Fork 0
validate schema
awekrx edited this page May 29, 2026
·
1 revision
import { validateSchema } from '@dev-suite/decorators/validate-schema'
parameter
Validate argument with schema parser (zod/io-ts/etc).
- Manual
schema.parse(arg)in each method - Repeated schema error handling boilerplate
class PaymentController {
create(payload: unknown) {
const parsed = paymentSchema.parse(payload);
return this.service.create(parsed);
}
}import { validateSchema } from '@dev-suite/decorators/validate-schema';
class PaymentController {
create(@validateSchema({ parse: paymentSchema.parse }) payload: PaymentInput) {
return this.service.create(payload);
}
}- Centralizes cross-cutting behavior.
- Method/class/property code stays focused on domain logic.
class NotificationController {
send(message: unknown) {
const parsed = messageSchema.parse(message);
return this.sender.send(parsed);
}
}import { validateSchema } from '@dev-suite/decorators/validate-schema';
class NotificationController {
send(@validateSchema({ parse: messageSchema.parse }) message: MessageInput) {
return this.sender.send(message);
}
}- Second scenario reuses same policy without duplication.
- Behavior is more consistent and easier to audit.