MCPcopy Create free account
hub / github.com/bitnbytesio/node-input-validator / validateRequiredIf

Method validateRequiredIf

lib/rules.js:56–94  ·  view source on GitHub ↗

* * @param {*} field * @param {*} value * @param {*} args

(field, value, args)

Source from the content-addressed store, hash-verified

54 * @param {*} args
55 */
56 async validateRequiredIf(field, value, args) {
57
58 if (!args || args.length < 2) {
59
60 throw new Error('Invalid arguments supplied for field ' + field + ' in requiredIf rule.');
61 return false;
62 }
63
64 if (args.length % 2 !== 0) {
65
66 throw new Error('Invalid arguments supplied for field ' + field + ' in requiredIf rule.');
67 return false;
68 }
69
70 let required = false;
71 for (let start = 0; start < args.length; start += 2) {
72 let requiredField = args[start];
73 let requiredValue = args[start + 1];
74
75 if (requiredField == field) {
76 return false;
77 }
78
79 // field is required if all values are presented
80 if (!this.isEmpty(this.validator.inputs[requiredField])
81 && this.validator.inputs[requiredField].toString() == requiredValue) {
82 required = true;
83 } else {
84 required = false;
85 break
86 }
87 }
88
89 if (required && this.isEmpty(value)) {
90 return false;
91 }
92
93 return true;
94 }
95
96 /**
97 *

Callers 1

validateRequiredNotIfMethod · 0.95

Calls 1

isEmptyMethod · 0.95

Tested by

no test coverage detected