# give/4.18.0/src/DonationForms/resources/app/utilities/createValidationObjectFromFields.js

GiveWP – Donation Plugin and Fundraising Platform, version 4.18.0. 43 lines.

- Page: https://pluginprobe.com/plugins/give/4.18.0/code/src/DonationForms/resources/app/utilities/createValidationObjectFromFields.js
- Raw: https://pluginprobe.com/plugins/give/4.18.0/raw/src/DonationForms/resources/app/utilities/createValidationObjectFromFields.js
- Modified: 2023-10-16T17:55:46+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.18.0/code/src/DonationForms/resources/app/utilities/createValidationObjectFromFields.js#L10-L20`.

```javascript
function createValidationObjectFromFields(fields) {
    return fields.reduce((rules, field) => {
        let rule = Joi;

        if (field.nodes) {
            field.nodes.map(({name, type, validationRules}) => {
                if (type === 'group') {
                    return null;
                }
                if (validationRules?.required) {
                    rule = rule.required();
                }

                if (field.type === 'email') {
                    rule = rule.email({tlds: false});
                }

                if (field.type === 'text') {
                    rule = rule.string();
                }

                rules[name] = rule;
            });
        } else {
            if (field.validationRules?.required) {
                rule = rule.required();
            }

            if (field.type === 'email') {
                rule = rule.email({tlds: false});
            }

            if (field.type === 'text') {
                rule = rule.string();
            }

            rules[field.name] = rule;
        }

        return rules;
    }, {});
}

```
