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.
options validator with errors
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
| Parameter | Type | Description |
|---|---|---|
configs | FieldValidatorConfig[] | Array of field validator configurations |
field validator config
Returns
Validation function that returns an array of error messages
options validator with errors
Since
6.12.0