| {{# def.definitions }} | |
| {{# def.errors }} | |
| {{# def.setupKeyword }} | |
| {{# def.setupNextLevel }} | |
| 
 | |
| 
 | |
| {{## def.validateIfClause:_clause: | |
|   {{ | |
|     $it.schema = it.schema['_clause']; | |
|     $it.schemaPath = it.schemaPath + '._clause'; | |
|     $it.errSchemaPath = it.errSchemaPath + '/_clause'; | |
|   }} | |
|   {{# def.insertSubschemaCode }} | |
|   {{=$valid}} = {{=$nextValid}}; | |
|   {{? $thenPresent && $elsePresent }} | |
|     {{ $ifClause = 'ifClause' + $lvl; }} | |
|     var {{=$ifClause}} = '_clause'; | |
|   {{??}} | |
|     {{ $ifClause = '\'_clause\''; }} | |
|   {{?}} | |
| #}} | |
| 
 | |
| {{ | |
|   var $thenSch = it.schema['then'] | |
|     , $elseSch = it.schema['else'] | |
|     , $thenPresent = $thenSch !== undefined && {{# def.nonEmptySchema:$thenSch }} | |
|     , $elsePresent = $elseSch !== undefined && {{# def.nonEmptySchema:$elseSch }} | |
|     , $currentBaseId = $it.baseId; | |
| }} | |
| 
 | |
| {{? $thenPresent || $elsePresent }} | |
|   {{ | |
|     var $ifClause; | |
|     $it.createErrors = false; | |
|     $it.schema = $schema; | |
|     $it.schemaPath = $schemaPath; | |
|     $it.errSchemaPath = $errSchemaPath; | |
|   }} | |
|   var {{=$errs}} = errors; | |
|   var {{=$valid}} = true; | |
| 
 | |
|   {{# def.setCompositeRule }} | |
|   {{# def.insertSubschemaCode }} | |
|   {{ $it.createErrors = true; }} | |
|   {{# def.resetErrors }} | |
|   {{# def.resetCompositeRule }} | |
| 
 | |
|   {{? $thenPresent }} | |
|     if ({{=$nextValid}}) { | |
|       {{# def.validateIfClause:then }} | |
|     } | |
|     {{? $elsePresent }} | |
|       else { | |
|     {{?}} | |
|   {{??}} | |
|     if (!{{=$nextValid}}) { | |
|   {{?}} | |
| 
 | |
|   {{? $elsePresent }} | |
|       {{# def.validateIfClause:else }} | |
|     } | |
|   {{?}} | |
| 
 | |
|   if (!{{=$valid}}) { | |
|     {{# def.extraError:'if' }} | |
|   }  | |
|   {{? $breakOnError }} else { {{?}} | |
| {{??}} | |
|   {{? $breakOnError }} | |
|     if (true) { | |
|   {{?}} | |
| {{?}} | |
| 
 |