1{{# def.definitions }} 2{{# def.errors }} 3{{# def.setupKeyword }} 4{{# def.setupNextLevel }} 5 6 7{{## def.validateIf: 8 {{# def.setCompositeRule }} 9 {{ $it.createErrors = false; }} 10 {{# def._validateSwitchRule:if }} 11 {{ $it.createErrors = true; }} 12 {{# def.resetCompositeRule }} 13 {{=$ifPassed}} = {{=$nextValid}}; 14#}} 15 16{{## def.validateThen: 17 {{? typeof $sch.then == 'boolean' }} 18 {{? $sch.then === false }} 19 {{# def.error:'switch' }} 20 {{?}} 21 var {{=$nextValid}} = {{= $sch.then }}; 22 {{??}} 23 {{# def._validateSwitchRule:then }} 24 {{?}} 25#}} 26 27{{## def._validateSwitchRule:_clause: 28 {{ 29 $it.schema = $sch._clause; 30 $it.schemaPath = $schemaPath + '[' + $caseIndex + ']._clause'; 31 $it.errSchemaPath = $errSchemaPath + '/' + $caseIndex + '/_clause'; 32 }} 33 {{# def.insertSubschemaCode }} 34#}} 35 36{{## def.switchCase: 37 {{? $sch.if && {{# def.nonEmptySchema:$sch.if }} }} 38 var {{=$errs}} = errors; 39 {{# def.validateIf }} 40 if ({{=$ifPassed}}) { 41 {{# def.validateThen }} 42 } else { 43 {{# def.resetErrors }} 44 } 45 {{??}} 46 {{=$ifPassed}} = true; 47 {{# def.validateThen }} 48 {{?}} 49#}} 50 51 52{{ 53 var $ifPassed = 'ifPassed' + it.level 54 , $currentBaseId = $it.baseId 55 , $shouldContinue; 56}} 57var {{=$ifPassed}}; 58 59{{~ $schema:$sch:$caseIndex }} 60 {{? $caseIndex && !$shouldContinue }} 61 if (!{{=$ifPassed}}) { 62 {{ $closingBraces+= '}'; }} 63 {{?}} 64 65 {{# def.switchCase }} 66 {{ $shouldContinue = $sch.continue }} 67{{~}} 68 69{{= $closingBraces }} 70 71var {{=$valid}} = {{=$nextValid}}; 72 73{{# def.cleanUp }} 74