UNPKG

@sprucelabs/schema

Version:

Static and dynamic binding plus runtime validation and transformation to ensure your app is sound. 🤓

24 lines (23 loc) • 815 B
import * as EmailValidator from 'email-validator'; import AbstractField from './AbstractField.js'; class EmailField extends AbstractField { static generateTemplateDetails(options) { const { definition, language } = options; const { isArray } = definition; const arrayNotation = isArray ? '[]' : ''; return { valueType: language === 'go' ? `${arrayNotation}string` : `string${arrayNotation}`, }; } validate(value, options) { const errors = super.validate(value, options); if (value && !EmailValidator.validate(value)) { errors.push({ code: 'INVALID_PARAMETER', name: this.name }); } return errors; } } EmailField.description = 'Email support.'; export default EmailField;