| {{# 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}}; |
| |
| {{# def.cleanUp }} |