@sprucelabs/schema
Version:
Static and dynamic binding plus runtime validation and transformation to ensure your app is sound. 🤓
24 lines (23 loc) • 815 B
JavaScript
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;