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.
54 lines
1.1 KiB
54 lines
1.1 KiB
{{# def.definitions }} |
|
{{# def.errors }} |
|
{{# def.setupKeyword }} |
|
{{# def.setupNextLevel }} |
|
|
|
{{ |
|
var $currentBaseId = $it.baseId |
|
, $prevValid = 'prevValid' + $lvl |
|
, $passingSchemas = 'passingSchemas' + $lvl; |
|
}} |
|
|
|
var {{=$errs}} = errors |
|
, {{=$prevValid}} = false |
|
, {{=$valid}} = false |
|
, {{=$passingSchemas}} = null; |
|
|
|
{{# def.setCompositeRule }} |
|
|
|
{{~ $schema:$sch:$i }} |
|
{{? {{# def.nonEmptySchema:$sch }} }} |
|
{{ |
|
$it.schema = $sch; |
|
$it.schemaPath = $schemaPath + '[' + $i + ']'; |
|
$it.errSchemaPath = $errSchemaPath + '/' + $i; |
|
}} |
|
|
|
{{# def.insertSubschemaCode }} |
|
{{??}} |
|
var {{=$nextValid}} = true; |
|
{{?}} |
|
|
|
{{? $i }} |
|
if ({{=$nextValid}} && {{=$prevValid}}) { |
|
{{=$valid}} = false; |
|
{{=$passingSchemas}} = [{{=$passingSchemas}}, {{=$i}}]; |
|
} else { |
|
{{ $closingBraces += '}'; }} |
|
{{?}} |
|
|
|
if ({{=$nextValid}}) { |
|
{{=$valid}} = {{=$prevValid}} = true; |
|
{{=$passingSchemas}} = {{=$i}}; |
|
} |
|
{{~}} |
|
|
|
{{# def.resetCompositeRule }} |
|
|
|
{{= $closingBraces }} |
|
|
|
if (!{{=$valid}}) { |
|
{{# def.extraError:'oneOf' }} |
|
} else { |
|
{{# def.resetErrors }} |
|
{{? it.opts.allErrors }} } {{?}}
|
|
|