Skip to main content

index/functions/createOptionsValidator.md

createOptionsValidator<T>(configs): OptionsValidatorWithErrors<T>

Creates an options validator from field configurations

This factory eliminates duplicate validation boilerplate across DTO files. Returns an array of error messages (empty if valid), which aligns with moderator.dto.ts and api-key.dto.ts validation patterns.

Usage​

Basic field validation​

import { createOptionsValidator, commonValidators } from '../utils/validation-helpers';

const validateCreateOptions = createOptionsValidator<CreateOptions>([
{ field: 'name', required: true, type: 'string' },
{ field: 'description', validator: commonValidators.maxLength('description', 255) },
{ field: 'status', validator: commonValidators.enumValue('status', ['active', 'inactive']) },
]);

// Usage
const errors = validateCreateOptions(options);
if (errors.length > 0) {
throw new ValidationError(errors[0], 'options', 'VALIDATION_FAILED');
}

With custom validators​

const validateOptions = createOptionsValidator<MyOptions>([
{ field: 'tokenName', validator: (value) => {
try {
validateLaunchpadTokenName(value as string, 'tokenName');
return undefined;
} catch (e) {
return (e as Error).message;
}
}},
]);

Type Parameters​

Type Parameter
T extends Record<string, unknown>

Parameters​

ParameterTypeDescription
configsFieldValidatorConfig[]Array of field validator configurations

Returns​

OptionsValidatorWithErrors<T>

Validation function that returns an array of error messages

Since​

6.12.0