{{# def.definitions }} {{# def.errors }} {{# def.missing }} {{# def.setupKeyword }} {{# def.setupNextLevel }}
{{## def.propertyInData:
{{=$data}}{{= it.util.getProperty($property) }} !== undefined {{? $ownProperties }} && Object.prototype.hasOwnProperty.call({{=$data}}, '{{=it.util.escapeQuotes($property)}}') {{?}}
#}}
{{
var $schemaDeps = {} , $propertyDeps = {} , $ownProperties = it.opts.ownProperties; for ($property in $schema) { var $sch = $schema[$property]; var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps; $deps[$property] = $sch; }
}}
var {{=$errs}} = errors;
{{ var $currentErrorPath = it.errorPath; }}
var missing{{=$lvl}}; {{ for (var $property in $propertyDeps) { }}
{{ $deps = $propertyDeps[$property]; }} {{? $deps.length }} if ({{# def.propertyInData }} {{? $breakOnError }} && ({{# def.checkMissingProperty:$deps }})) { {{# def.errorMissingProperty:'dependencies' }} {{??}} ) { {{~ $deps:$propertyKey }} {{# def.allErrorsMissingProperty:'dependencies' }} {{~}} {{?}} } {{# def.elseIfValid }} {{?}}
{{ } }}
{{
it.errorPath = $currentErrorPath; var $currentBaseId = $it.baseId;
}}
{{ for (var $property in $schemaDeps) { }}
{{ var $sch = $schemaDeps[$property]; }} {{? {{# def.nonEmptySchema:$sch }} }} {{=$nextValid}} = true; if ({{# def.propertyInData }}) { {{ $it.schema = $sch; $it.schemaPath = $schemaPath + it.util.getProperty($property); $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property); }} {{# def.insertSubschemaCode }} } {{# def.ifResultValid }} {{?}}
{{ } }}
{{? $breakOnError }}
{{= $closingBraces }} if ({{=$errs}} == errors) {
{{?}}
{{# def.cleanUp }}