Skip to content

Commit 9b474fb

Browse files
committed
Allow to set object validators as warnings
1 parent ef4e1b8 commit 9b474fb

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

packages/react-form-renderer/src/form-renderer/validator-helpers.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { DataType } from "../files/data-types";
55

66
export type ValidatorFunction = (value: any, allValues: object) => ReactNode | undefined;
77

8+
export type convertToWarning = (validator: ValidatorType) => ValidatorFunction;
9+
810
export function prepareValidator(
911
validator: ValidatorFunction | ValidatorType,
1012
mapper: ValidatorMapper): ValidatorFunction;

packages/react-form-renderer/src/form-renderer/validator-helpers.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,22 @@ import { memoize } from '../validators/helpers';
22
import { dataTypeValidator } from '../validators';
33
import composeValidators from '../files/compose-validators';
44

5-
export const prepareValidator = (validator, mapper) =>
6-
typeof validator === 'function' ? memoize(validator) : mapper[validator.type]({ ...validator });
5+
export const convertToWarning = (validator) => (...args) => ({
6+
type: 'warning',
7+
error: validator(...args)
8+
});
9+
10+
export const prepareValidator = (validator, mapper) => {
11+
if (typeof validator === 'function') {
12+
return memoize(validator);
13+
}
14+
15+
if (validator.warning) {
16+
return convertToWarning(mapper[validator.type]({ ...validator }));
17+
}
18+
19+
return mapper[validator.type]({ ...validator });
20+
};
721

822
export const getValidate = (validate, dataType, mapper = {}) => [
923
...(validate ? validate.map((validator) => prepareValidator(validator, mapper)) : []),

0 commit comments

Comments
 (0)