Examples

Example 1

import { validatedStateKey } from '@setu-ts/common';
import { ValidationPlugin, validateBody, validateQuery } from '@setu-ts/validation-plugin';

app.register(ValidationPlugin({ errorFormat: 'rfc9457' }));

app.router.post('/users', {
  middleware: [validateBody(CreateUserSchema)],
  handler: async (ctx) => {
    const body = ctx.state.get(validatedStateKey('body'));
    // body is validated
  },
});

Classes

Functions

f
createSanitizer(rules: SanitizationRules): (input: string) => string

Create a sanitization function that applies the given rules to each call.

f
resolveFormatter(format?: ErrorFormat | ValidationErrorFormatter): ValidationErrorFormatter

Resolve the error format configuration to a concrete formatter function.

f
sanitize(
input: string,
rules: SanitizationRules
): string

Sanitize a single string value with the given rules.

f
validateBody(schema: unknown): MiddlewareFunction

Validate the request body against a schema.

f
f
validateHeaders(schema: unknown): MiddlewareFunction

Validate request headers against a schema.

f
validateParams(schema: unknown): MiddlewareFunction

Validate path parameters against a schema.

f
validateQuery(schema: unknown): MiddlewareFunction

Validate query parameters against a schema.

Interfaces

I
FormattedError

A single formatted error entry.

I
FormatValidationErrors

The shaped error body produced by a validation error formatter.

I
SanitizationRules

Configuration for sanitizing a string value.

I
ValidationPluginOptions

Options for ValidationPlugin.

Type Aliases

T
ErrorFormat = "default" | "rfc9457" | "rfc7807" | "nestjs"

The built-in error format identifiers for @setu-ts/validation-plugin.

Variables

v
rfc7807Formatter: ValidationErrorFormatter

Format validation issues as RFC 7807 Problem Details.