55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | {{# def.definitions }} | ||
|  | {{# def.errors }} | ||
|  | {{# def.setupKeyword }} | ||
|  | {{# def.setupNextLevel }} | ||
|  | 
 | ||
|  | {{ | ||
|  |   var $currentBaseId = $it.baseId | ||
|  |     , $prevValid = 'prevValid' + $lvl | ||
|  |     , $passingSchemas = 'passingSchemas' + $lvl; | ||
|  | }} | ||
|  | 
 | ||
|  | var {{=$errs}} = errors | ||
|  |   , {{=$prevValid}} = false | ||
|  |   , {{=$valid}} = false | ||
|  |   , {{=$passingSchemas}} = null; | ||
|  | 
 | ||
|  | {{# def.setCompositeRule }} | ||
|  | 
 | ||
|  | {{~ $schema:$sch:$i }} | ||
|  |   {{? {{# def.nonEmptySchema:$sch }} }} | ||
|  |     {{ | ||
|  |       $it.schema = $sch; | ||
|  |       $it.schemaPath = $schemaPath + '[' + $i + ']'; | ||
|  |       $it.errSchemaPath = $errSchemaPath + '/' + $i; | ||
|  |     }} | ||
|  | 
 | ||
|  |     {{# def.insertSubschemaCode }} | ||
|  |   {{??}} | ||
|  |     var {{=$nextValid}} = true; | ||
|  |   {{?}} | ||
|  | 
 | ||
|  |   {{? $i }} | ||
|  |     if ({{=$nextValid}} && {{=$prevValid}}) { | ||
|  |       {{=$valid}} = false; | ||
|  |       {{=$passingSchemas}} = [{{=$passingSchemas}}, {{=$i}}]; | ||
|  |     } else { | ||
|  |     {{ $closingBraces += '}'; }} | ||
|  |   {{?}} | ||
|  | 
 | ||
|  |     if ({{=$nextValid}}) { | ||
|  |       {{=$valid}} = {{=$prevValid}} = true; | ||
|  |       {{=$passingSchemas}} = {{=$i}}; | ||
|  |     } | ||
|  | {{~}} | ||
|  | 
 | ||
|  | {{# def.resetCompositeRule }} | ||
|  | 
 | ||
|  | {{= $closingBraces }} | ||
|  | 
 | ||
|  | if (!{{=$valid}}) { | ||
|  |   {{# def.extraError:'oneOf' }} | ||
|  | } else { | ||
|  |   {{# def.resetErrors }} | ||
|  | {{? it.opts.allErrors }} } {{?}} |