72 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| {{# def.definitions }}
 | |
| {{# def.errors }}
 | |
| {{# def.setupKeyword }}
 | |
| {{# def.setupNextLevel }}
 | |
| 
 | |
| 
 | |
| {{## def.validateIf:
 | |
|   {{# def.setCompositeRule }}
 | |
|   {{ $it.createErrors = false; }}
 | |
|   {{# def._validateSwitchRule:if }}
 | |
|   {{ $it.createErrors = true; }}
 | |
|   {{# def.resetCompositeRule }}
 | |
|   {{=$ifPassed}} = {{=$nextValid}};
 | |
| #}}
 | |
| 
 | |
| {{## def.validateThen:
 | |
|   {{? typeof $sch.then == 'boolean' }}
 | |
|     {{? $sch.then === false }}
 | |
|       {{# def.error:'switch' }}
 | |
|     {{?}}
 | |
|     var {{=$nextValid}} = {{= $sch.then }};
 | |
|   {{??}}
 | |
|     {{# def._validateSwitchRule:then }}
 | |
|   {{?}}
 | |
| #}}
 | |
| 
 | |
| {{## def._validateSwitchRule:_clause:
 | |
|   {{
 | |
|     $it.schema = $sch._clause;
 | |
|     $it.schemaPath = $schemaPath + '[' + $caseIndex + ']._clause';
 | |
|     $it.errSchemaPath = $errSchemaPath + '/' + $caseIndex + '/_clause';
 | |
|   }}
 | |
|   {{# def.insertSubschemaCode }}
 | |
| #}}
 | |
| 
 | |
| {{## def.switchCase:
 | |
|   {{? $sch.if && {{# def.nonEmptySchema:$sch.if }} }}
 | |
|     var {{=$errs}} = errors;
 | |
|     {{# def.validateIf }}
 | |
|     if ({{=$ifPassed}}) {
 | |
|       {{# def.validateThen }}  
 | |
|     } else {
 | |
|       {{# def.resetErrors }}
 | |
|     }
 | |
|   {{??}}
 | |
|     {{=$ifPassed}} = true;
 | |
|     {{# def.validateThen }}
 | |
|   {{?}}
 | |
| #}}
 | |
| 
 | |
| 
 | |
| {{
 | |
|   var $ifPassed = 'ifPassed' + it.level
 | |
|     , $currentBaseId = $it.baseId
 | |
|     , $shouldContinue;
 | |
| }}
 | |
| var {{=$ifPassed}};
 | |
| 
 | |
| {{~ $schema:$sch:$caseIndex }}
 | |
|   {{? $caseIndex && !$shouldContinue }}
 | |
|     if (!{{=$ifPassed}}) {
 | |
|     {{ $closingBraces+= '}'; }}
 | |
|   {{?}}
 | |
| 
 | |
|   {{# def.switchCase }}
 | |
|   {{ $shouldContinue = $sch.continue }}
 | |
| {{~}}
 | |
| 
 | |
| {{= $closingBraces }}
 | |
| 
 | |
| var {{=$valid}} = {{=$nextValid}};
 | 
