Update enum regex

This commit is contained in:
Alexandre Bodin 2019-08-01 18:12:05 +02:00
parent 03b22b5958
commit 985c67c057
2 changed files with 16 additions and 2 deletions

View File

@ -35,6 +35,7 @@ const validators = {
}; };
const NAME_REGEX = new RegExp('^[A-Za-z][_0-9A-Za-z]*$'); const NAME_REGEX = new RegExp('^[A-Za-z][_0-9A-Za-z]*$');
const ENUM_REGEX = new RegExp('^[_A-Za-z][_0-9A-Za-z]*$');
const isValidName = { const isValidName = {
name: 'isValidName', name: 'isValidName',
@ -48,11 +49,19 @@ const isValidKey = key => ({
test: () => NAME_REGEX.test(key), test: () => NAME_REGEX.test(key),
}); });
const isValidEnum = {
name: 'isValidName',
message:
'${path} must match the following regex: /^[_A-Za-z][_0-9A-Za-z]*$/^',
test: val => val === '' || ENUM_REGEX.test(val),
};
module.exports = { module.exports = {
validators, validators,
isValidName, isValidName,
isValidKey, isValidKey,
isValidEnum,
VALID_TYPES, VALID_TYPES,
}; };

View File

@ -1,7 +1,12 @@
'use strict'; 'use strict';
const yup = require('yup'); const yup = require('yup');
const { validators, VALID_TYPES, isValidName } = require('./common'); const {
validators,
VALID_TYPES,
isValidName,
isValidEnum,
} = require('./common');
module.exports = obj => { module.exports = obj => {
return { return {
@ -51,7 +56,7 @@ const getTypeShape = obj => {
return { return {
enum: yup enum: yup
.array() .array()
.of(yup.string().test(isValidName)) .of(yup.string().test(isValidEnum))
.min(1) .min(1)
.required(), .required(),
default: yup default: yup