You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.5 KiB
71 lines
1.5 KiB
{{# 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}};
|
|
|