payload-field-validators
Version:
Easy validation handlers for Payload CMS collection's fields
27 lines (23 loc) • 758 B
text/typescript
import { validateUrl } from './url/index.js'
import { validateRegex } from './regex/index.js'
import { validateIPAddress } from './ip_address/index.js'
import { validateEmail } from './email/index.js'
/**
* Interface to define a Validator
*/
interface PayloadValidator {
condition: boolean
message?: string
}
/**
* list of Validators to apply on Payload's Collection Field
* @param validators
*/
export function validateField(validators: PayloadValidator[] | PayloadValidator): any {
const _list = Array.isArray(validators) ? validators : [validators]
for (let { condition, message } of _list) {
if (!condition) return message || 'Invalid input'
}
return null
}
export { validateRegex, validateUrl, validateIPAddress, validateEmail }