MCPcopy Index your code
hub / github.com/bitnbytesio/node-input-validator / validate

Method validate

lib/rules.js:198–289  ·  view source on GitHub ↗

* apply rules on inputs * @param field * @returns {Promise. }

(field)

Source from the content-addressed store, hash-verified

196 * @returns {Promise.<boolean>}
197 */
198 async validate(field) {
199
200 let proceed = true;
201
202 if (field.multiple) {
203
204
205 let fieldArr = field.path;
206
207 let fieldName = field.field;
208
209
210
211 for (let i in this.validator.inputs[fieldArr[0]]) {
212
213 let item = this.validator.inputs[fieldArr[0]][i];
214
215 //console.log(item, fieldArr);
216
217 let indexedField = fieldName.replace('*', i);
218
219 //fieldWithIndex.push(indexedField);
220
221 let value = '';
222
223 let fieldArrLen = fieldArr.length;
224
225 if (fieldArrLen == 3) {
226 value = item[fieldArr[2]];
227 } else if (fieldArrLen == 2) {
228 value = item;
229 }
230
231 proceed = await this.validate({
232 field: indexedField,
233 multiple: false,
234 rules: field.rules,
235 required: field.required
236 });
237
238 }
239
240 return proceed;
241 }
242
243 for (let r = 0; r < field.rules.length; r++) {
244
245 field.value = this.validator.inputVal(field.field, field.multiple);
246
247 if (field.value == false) {
248 field.value = String(field.value);
249 }
250
251 //console.log('validated rule', field.rules[r], field);
252 //console.log('--------------------------------------');
253
254 let func = 'validate' + field.rules[r].rule.charAt(0).toUpperCase() + field.rules[r].rule.slice(1);
255

Callers 2

evaluateFieldMethod · 0.45
evaluateInputMethod · 0.45

Calls 5

isEmptyMethod · 0.95
inputValMethod · 0.80
applyMethod · 0.80
parseMessageMethod · 0.80
addErrorMethod · 0.80

Tested by

no test coverage detected