| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | {{# def.definitions }}{{# def.errors }}{{# def.missing }}{{# def.setupKeyword }}{{# def.$data }}{{ var $vSchema = 'schema' + $lvl; }}{{## def.setupLoop:  {{? !$isData }}    var {{=$vSchema}} = validate.schema{{=$schemaPath}};  {{?}}  {{    var $i = 'i' + $lvl      , $propertyPath = 'schema' + $lvl + '[' + $i + ']'      , $missingProperty = '\' + ' + $propertyPath + ' + \'';    if (it.opts._errorDataPathProperty) {      it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);    }  }}#}}{{## def.isRequiredOwnProperty:  Object.prototype.hasOwnProperty.call({{=$data}}, {{=$vSchema}}[{{=$i}}])#}}{{? !$isData }}  {{? $schema.length < it.opts.loopRequired &&      it.schema.properties && Object.keys(it.schema.properties).length }}    {{ var $required = []; }}    {{~ $schema:$property }}      {{ var $propertySch = it.schema.properties[$property]; }}      {{? !($propertySch && {{# def.nonEmptySchema:$propertySch}}) }}        {{ $required[$required.length] = $property; }}      {{?}}    {{~}}  {{??}}    {{ var $required = $schema; }}  {{?}}{{?}}{{? $isData || $required.length }}  {{    var $currentErrorPath = it.errorPath      , $loopRequired = $isData || $required.length >= it.opts.loopRequired      , $ownProperties = it.opts.ownProperties;  }}  {{? $breakOnError }}    var missing{{=$lvl}};    {{? $loopRequired }}      {{# def.setupLoop }}      var {{=$valid}} = true;      {{?$isData}}{{# def.check$dataIsArray }}{{?}}      for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {        {{=$valid}} = {{=$data}}[{{=$vSchema}}[{{=$i}}]] !== undefined                      {{? $ownProperties }}                        && {{# def.isRequiredOwnProperty }}                      {{?}};        if (!{{=$valid}}) break;      }      {{? $isData }}  }  {{?}}      {{# def.checkError:'required' }}      else {    {{??}}      if ({{# def.checkMissingProperty:$required }}) {        {{# def.errorMissingProperty:'required' }}      } else {    {{?}}  {{??}}    {{? $loopRequired }}      {{# def.setupLoop }}      {{? $isData }}        if ({{=$vSchema}} && !Array.isArray({{=$vSchema}})) {          {{# def.addError:'required' }}        } else if ({{=$vSchema}} !== undefined) {      {{?}}      for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {        if ({{=$data}}[{{=$vSchema}}[{{=$i}}]] === undefined            {{? $ownProperties }}              || !{{# def.isRequiredOwnProperty }}            {{?}}) {          {{# def.addError:'required' }}        }      }      {{? $isData }}  }  {{?}}    {{??}}      {{~ $required:$propertyKey }}        {{# def.allErrorsMissingProperty:'required' }}      {{~}}    {{?}}  {{?}}  {{ it.errorPath = $currentErrorPath; }}{{?? $breakOnError }}  if (true) {{{?}}
 |