Spaces:
Sleeping
Sleeping
| import type { StandardSchemaV1 } from '@standard-schema/spec'; | |
| import { ArgumentMetadata, PipeTransform } from '../interfaces/features/pipe-transform.interface.js'; | |
| import { ErrorHttpStatusCode } from '../utils/http-error-by-code.util.js'; | |
| /** | |
| * @publicApi | |
| */ | |
| export interface StandardSchemaValidationPipeOptions { | |
| /** | |
| * If true, the pipe will return the value produced by the schema | |
| * (which may differ from the input if the schema coerces/transforms values). | |
| * If false, the original input value is returned after successful validation. | |
| * @default true | |
| */ | |
| transform?: boolean; | |
| /** | |
| * If true, the pipe will also validate parameters decorated with custom decorators | |
| * (created with `createParamDecorator`). When false, custom parameters are skipped. | |
| * @default false | |
| */ | |
| validateCustomDecorators?: boolean; | |
| /** | |
| * Options to pass to the standard schema `validate` function. | |
| * These options are forwarded as the second argument to the schema's `~standard.validate` method. | |
| */ | |
| validateOptions?: Record<string, unknown>; | |
| /** | |
| * The HTTP status code to be used in the response when the validation fails. | |
| * @default HttpStatus.BAD_REQUEST | |
| */ | |
| errorHttpStatusCode?: ErrorHttpStatusCode; | |
| /** | |
| * A factory function that returns an exception object to be thrown | |
| * if validation fails. | |
| * @param issues The issues returned by the standard schema validation | |
| * @returns The exception object | |
| */ | |
| exceptionFactory?: (issues: readonly StandardSchemaV1.Issue[]) => any; | |
| } | |
| /** | |
| * Defines the built-in StandardSchemaValidation Pipe. | |
| * | |
| * Uses a standard schema object (conforming to the Standard Schema spec) | |
| * attached to the parameter metadata to validate incoming values. | |
| * | |
| * @see [Standard Schema](https://github.com/standard-schema/standard-schema) | |
| * | |
| * @publicApi | |
| */ | |
| export declare class StandardSchemaValidationPipe implements PipeTransform { | |
| protected readonly options?: StandardSchemaValidationPipeOptions | undefined; | |
| protected isTransformEnabled: boolean; | |
| protected validateCustomDecorators: boolean; | |
| protected validateOptions: Record<string, unknown> | undefined; | |
| protected exceptionFactory: (issues: readonly StandardSchemaV1.Issue[]) => any; | |
| constructor(options?: StandardSchemaValidationPipeOptions | undefined); | |
| /** | |
| * Method that validates the incoming value against the standard schema | |
| * provided in the parameter metadata. | |
| * | |
| * @param value currently processed route argument | |
| * @param metadata contains metadata about the currently processed route argument | |
| */ | |
| transform<T = any>(value: T, metadata: ArgumentMetadata): Promise<T>; | |
| /** | |
| * Determines whether validation should be performed for the given metadata. | |
| * Skips validation for custom decorators unless `validateCustomDecorators` is enabled. | |
| * | |
| * @param metadata contains metadata about the currently processed route argument | |
| * @returns `true` if validation should be performed | |
| */ | |
| protected toValidate(metadata: ArgumentMetadata): boolean; | |
| /** | |
| * Validates a value against a standard schema. | |
| * Can be overridden to customize validation behavior. | |
| * | |
| * @param value The value to validate | |
| * @param schema The standard schema to validate against | |
| * @param options Optional options forwarded to the schema's validate method | |
| * @returns The validation result | |
| */ | |
| protected validate<T = unknown>(value: unknown, schema: StandardSchemaV1, options?: Record<string, unknown>): Promise<StandardSchemaV1.Result<T>> | StandardSchemaV1.Result<T>; | |
| /** | |
| * Strips dangerous prototype pollution keys from an object. | |
| */ | |
| protected stripProtoKeys(value: any): void; | |
| } | |