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.
73 lines
1.6 KiB
73 lines
1.6 KiB
{{# 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) { |
|
{{?}} |
|
{{?}} |
|
|
|
|