| {{# 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 }} } {{?}} |