Skip to content

Commit

Permalink
fix(core/presentation): In min/max validators, validate that the valu…
Browse files Browse the repository at this point in the history
…e is a number
  • Loading branch information
christopherthielen committed Sep 26, 2019
1 parent 5414465 commit 447d76f
Showing 1 changed file with 15 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { IValidator } from './validation';
import { isNumber } from 'lodash';

const THIS_FIELD = 'This field';

Expand All @@ -18,16 +19,25 @@ const isRequired = (message?: string): IValidator => {

const minValue = (min: number, message?: string): IValidator => {
return (val: number, label = THIS_FIELD) => {
const text = min === 0 ? 'cannot be negative' : `cannot be less than ${min}`;
message = message || `${label} ${text}`;
return val < min && message;
if (!isNumber(val)) {
return message || `${label} must be a number`;
} else if (val < min) {
const minText = min === 0 ? 'cannot be negative' : `cannot be less than ${min}`;
return message || `${label} ${minText}`;
}
return null;
};
};

const maxValue = (max: number, message?: string): IValidator => {
return (val: number, label = THIS_FIELD) => {
message = message || `${label} cannot be greater than ${max}`;
return val > max && message;
if (!isNumber(val)) {
return message || `${label} must be a number`;
} else if (val > max) {
const maxText = `cannot be greater than ${max}`;
return message || `${label} ${maxText}`;
}
return null;
};
};

Expand Down

0 comments on commit 447d76f

Please sign in to comment.