49 lines
1.7 KiB
Text
49 lines
1.7 KiB
Text
{{# def.definitions }}
|
|
{{# def.errors }}
|
|
{{# def.setupKeyword }}
|
|
{{# def.$data }}
|
|
|
|
{{
|
|
var $isMax = $keyword == 'maximum'
|
|
, $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum'
|
|
, $schemaExcl = it.schema[$exclusiveKeyword]
|
|
, $isDataExcl = it.opts.v5 && $schemaExcl && $schemaExcl.$data
|
|
, $op = $isMax ? '<' : '>'
|
|
, $notOp = $isMax ? '>' : '<';
|
|
}}
|
|
|
|
{{? $isDataExcl }}
|
|
{{
|
|
var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr)
|
|
, $exclusive = 'exclusive' + $lvl
|
|
, $opExpr = 'op' + $lvl
|
|
, $opStr = '\' + ' + $opExpr + ' + \'';
|
|
}}
|
|
var schemaExcl{{=$lvl}} = {{=$schemaValueExcl}};
|
|
{{ $schemaValueExcl = 'schemaExcl' + $lvl; }}
|
|
|
|
var exclusive{{=$lvl}};
|
|
if (typeof {{=$schemaValueExcl}} != 'boolean' && typeof {{=$schemaValueExcl}} != 'undefined') {
|
|
{{ var $errorKeyword = $exclusiveKeyword; }}
|
|
{{# def.error:'_exclusiveLimit' }}
|
|
} else if({{# def.$dataNotType:'number' }}
|
|
((exclusive{{=$lvl}} = {{=$schemaValueExcl}} === true)
|
|
? {{=$data}} {{=$notOp}}= {{=$schemaValue}}
|
|
: {{=$data}} {{=$notOp}} {{=$schemaValue}})
|
|
|| {{=$data}} !== {{=$data}}) {
|
|
var op{{=$lvl}} = exclusive{{=$lvl}} ? '{{=$op}}' : '{{=$op}}=';
|
|
{{??}}
|
|
{{
|
|
var $exclusive = $schemaExcl === true
|
|
, $opStr = $op; /*used in error*/
|
|
if (!$exclusive) $opStr += '=';
|
|
var $opExpr = '\'' + $opStr + '\''; /*used in error*/
|
|
}}
|
|
|
|
if ({{# def.$dataNotType:'number' }}
|
|
{{=$data}} {{=$notOp}}{{?$exclusive}}={{?}} {{=$schemaValue}}
|
|
|| {{=$data}} !== {{=$data}}) {
|
|
{{?}}
|
|
{{ var $errorKeyword = $keyword; }}
|
|
{{# def.error:'_limit' }}
|
|
} {{? $breakOnError }} else { {{?}}
|