81 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			81 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | {{# 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 }} |