Skip to content

validate args

awekrx edited this page May 29, 2026 · 1 revision

validate-args

Import

import { validateArgs } from '@dev-suite/decorators/validate-args'

Category

  • method

Use Case

Validate all method arguments against a schema before execution.

Replaces

  • Inline schema parsing in every method
  • Manual argument guards and type checks

Example 1

Without decorator

class OrderController {
  create(input: unknown) {
    const parsed = createOrderSchema.parse(input);
    return this.service.create(parsed);
  }
}

With decorator

import { validateArgs } from '@dev-suite/decorators/validate-args';

class OrderController {
  @validateArgs({ schema: createOrderSchema })
  create(input: CreateOrderInput) {
    return this.service.create(input);
  }
}

Why better

  • Validation policy stays near method signature.
  • Controller methods stay short and focused.

Example 2

Without decorator

class JobController {
  run(id: unknown, opts: unknown) {
    const parsedId = idSchema.parse(id);
    const parsedOpts = optsSchema.parse(opts);
    return this.runner.run(parsedId, parsedOpts);
  }
}

With decorator

import { validateArgs } from '@dev-suite/decorators/validate-args';

class JobController {
  @validateArgs({ schema: runJobArgsSchema })
  run(id: string, opts: RunJobOptions) {
    return this.runner.run(id, opts);
  }
}

Why better

  • Validates multi-argument contracts in one place.
  • Removes duplicated parse boilerplate.

Clone this wiki locally