contains.jst 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. {{# def.definitions }}
  2. {{# def.errors }}
  3. {{# def.setupKeyword }}
  4. {{# def.setupNextLevel }}
  5. {{
  6. var $idx = 'i' + $lvl
  7. , $dataNxt = $it.dataLevel = it.dataLevel + 1
  8. , $nextData = 'data' + $dataNxt
  9. , $currentBaseId = it.baseId
  10. , $nonEmptySchema = {{# def.nonEmptySchema:$schema }};
  11. }}
  12. var {{=$errs}} = errors;
  13. var {{=$valid}};
  14. {{? $nonEmptySchema }}
  15. {{# def.setCompositeRule }}
  16. {{
  17. $it.schema = $schema;
  18. $it.schemaPath = $schemaPath;
  19. $it.errSchemaPath = $errSchemaPath;
  20. }}
  21. for (var {{=$idx}} = 0; {{=$idx}} < {{=$data}}.length; {{=$idx}}++) {
  22. {{
  23. $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
  24. var $passData = $data + '[' + $idx + ']';
  25. $it.dataPathArr[$dataNxt] = $idx;
  26. }}
  27. {{# def.generateSubschemaCode }}
  28. {{# def.optimizeValidate }}
  29. if ({{=$nextValid}}) break;
  30. }
  31. {{# def.resetCompositeRule }}
  32. {{= $closingBraces }}
  33. if (!{{=$nextValid}}) {
  34. {{??}}
  35. if ({{=$data}}.length == 0) {
  36. {{?}}
  37. {{# def.error:'contains' }}
  38. } else {
  39. {{? $nonEmptySchema }}
  40. {{# def.resetErrors }}
  41. {{?}}
  42. {{? it.opts.allErrors }} } {{?}}
  43. {{# def.cleanUp }}