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 ENUM_REGEX = new RegExp('^[_A-Za-z][_0-9A-Za-z]*$');
const isValidName = {
name: 'isValidName',
@ -48,11 +49,19 @@ const isValidKey = 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 = {
validators,
isValidName,
isValidKey,
isValidEnum,
VALID_TYPES,
};

View File

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