@atscript/moost-validator – API Reference
@atscript/moost-validator bridges Atscript-annotated types with the Moost pipeline system. It exposes a handful of helpers; everything else (advanced options, CLI usage, custom plugins) lives in the Atscript documentation.
Exports
| Export | Type | Summary |
|---|---|---|
validatorPipe(opts?) | PipeFn | Validates every value whose design type was generated by Atscript (type.validator(opts).validate(value)). |
UseValidatorPipe(opts?) | Decorator | Syntactic sugar for attaching validatorPipe() to classes, methods, parameters, or properties. |
validationErrorTransform() | InterceptorFn | Converts ValidatorError into HttpError(400) so clients see a structured validation response instead of 500. |
UseValidationErrorTransform() | Decorator | Shortcut for applying validationErrorTransform() at controller/handler level. |
All exports are tree-shakeable and have no runtime dependencies beyond Moost and Atscript.
validatorPipe(opts?)
Attach once globally or locally when you need validation.
import { validatorPipe } from '@atscript/moost-validator'
app.applyGlobalPipes(validatorPipe())opts accepts any subset of TValidatorOptions (e.g. { partial: 'deep', errorLimit: 50 }). Options are forwarded directly to Atscript’s validator.
UseValidatorPipe(opts?)
import { Controller } from 'moost'
import { Body, Post } from '@moostjs/event-http'
import { UseValidatorPipe } from '@atscript/moost-validator'
import { UpdateUserDto } from './update-user.dto.as'
@Controller('users')
export class UsersController {
@Post()
@UseValidatorPipe({ partial: true })
async patch(@Body() dto: UpdateUserDto) {}
}validationErrorTransform()
Without this interceptor a failed validation becomes an unhandled error (500). With it, Moost responds with 400 Bad Request and the validator details.
import { validationErrorTransform } from '@atscript/moost-validator'
app.applyGlobalInterceptors(validationErrorTransform())Example response:
{
"statusCode": 400,
"message": "Validation failed",
"errors": [
{ "path": "email", "message": "Invalid email" }
]
}UseValidationErrorTransform()
import { UseValidationErrorTransform } from '@atscript/moost-validator'
import { CreateUserDto } from './create-user.dto.as'
@Post()
@UseValidationErrorTransform()
async create(@Body() dto: CreateUserDto) {}Apply alongside UseValidatorPipe() when you want handler-level configuration instead of app-wide defaults.
Need more? See the validation overview for workflow guidance and the Atscript docs for DTO authoring, CLI usage, and plugin recipes.
