{{# 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 }}