117 lines
3.0 KiB
Plaintext
117 lines
3.0 KiB
Plaintext
|
{{# def.definitions }}
|
||
|
{{# def.errors }}
|
||
|
{{# def.setupKeyword }}
|
||
|
|
||
|
var {{=$valid}} = undefined;
|
||
|
|
||
|
{{## def.skipFormatLimit:
|
||
|
{{=$valid}} = true;
|
||
|
{{ return out; }}
|
||
|
#}}
|
||
|
|
||
|
{{## def.compareFormat:
|
||
|
{{? $isData }}
|
||
|
if ({{=$schemaValue}} === undefined) {{=$valid}} = true;
|
||
|
else if (typeof {{=$schemaValue}} != 'string') {{=$valid}} = false;
|
||
|
else {
|
||
|
{{ $closingBraces += '}'; }}
|
||
|
{{?}}
|
||
|
|
||
|
{{? $isDataFormat }}
|
||
|
if (!{{=$compare}}) {{=$valid}} = true;
|
||
|
else {
|
||
|
{{ $closingBraces += '}'; }}
|
||
|
{{?}}
|
||
|
|
||
|
var {{=$result}} = {{=$compare}}({{=$data}}, {{# def.schemaValueQS }});
|
||
|
|
||
|
if ({{=$result}} === undefined) {{=$valid}} = false;
|
||
|
#}}
|
||
|
|
||
|
|
||
|
{{? it.opts.format === false }}{{# def.skipFormatLimit }}{{?}}
|
||
|
|
||
|
{{
|
||
|
var $schemaFormat = it.schema.format
|
||
|
, $isDataFormat = it.opts.v5 && $schemaFormat.$data
|
||
|
, $closingBraces = '';
|
||
|
}}
|
||
|
|
||
|
{{? $isDataFormat }}
|
||
|
{{
|
||
|
var $schemaValueFormat = it.util.getData($schemaFormat.$data, $dataLvl, it.dataPathArr)
|
||
|
, $format = 'format' + $lvl
|
||
|
, $compare = 'compare' + $lvl;
|
||
|
}}
|
||
|
|
||
|
var {{=$format}} = formats[{{=$schemaValueFormat}}]
|
||
|
, {{=$compare}} = {{=$format}} && {{=$format}}.compare;
|
||
|
{{??}}
|
||
|
{{ var $format = it.formats[$schemaFormat]; }}
|
||
|
{{? !($format && $format.compare) }}
|
||
|
{{# def.skipFormatLimit }}
|
||
|
{{?}}
|
||
|
{{ var $compare = 'formats' + it.util.getProperty($schemaFormat) + '.compare'; }}
|
||
|
{{?}}
|
||
|
|
||
|
{{
|
||
|
var $isMax = $keyword == 'formatMaximum'
|
||
|
, $exclusiveKeyword = 'formatExclusive' + ($isMax ? 'Maximum' : 'Minimum')
|
||
|
, $schemaExcl = it.schema[$exclusiveKeyword]
|
||
|
, $isDataExcl = it.opts.v5 && $schemaExcl && $schemaExcl.$data
|
||
|
, $op = $isMax ? '<' : '>'
|
||
|
, $result = 'result' + $lvl;
|
||
|
}}
|
||
|
|
||
|
{{# def.$data }}
|
||
|
|
||
|
|
||
|
{{? $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; }}
|
||
|
|
||
|
if (typeof {{=$schemaValueExcl}} != 'boolean' && {{=$schemaValueExcl}} !== undefined) {
|
||
|
{{=$valid}} = false;
|
||
|
{{ var $errorKeyword = $exclusiveKeyword; }}
|
||
|
{{# def.error:'_formatExclusiveLimit' }}
|
||
|
}
|
||
|
|
||
|
{{# def.elseIfValid }}
|
||
|
|
||
|
{{# def.compareFormat }}
|
||
|
var {{=$exclusive}} = {{=$schemaValueExcl}} === true;
|
||
|
|
||
|
if ({{=$valid}} === undefined) {
|
||
|
{{=$valid}} = {{=$exclusive}}
|
||
|
? {{=$result}} {{=$op}} 0
|
||
|
: {{=$result}} {{=$op}}= 0;
|
||
|
}
|
||
|
|
||
|
if (!{{=$valid}}) var op{{=$lvl}} = {{=$exclusive}} ? '{{=$op}}' : '{{=$op}}=';
|
||
|
{{??}}
|
||
|
{{
|
||
|
var $exclusive = $schemaExcl === true
|
||
|
, $opStr = $op; /*used in error*/
|
||
|
if (!$exclusive) $opStr += '=';
|
||
|
var $opExpr = '\'' + $opStr + '\''; /*used in error*/
|
||
|
}}
|
||
|
|
||
|
{{# def.compareFormat }}
|
||
|
|
||
|
if ({{=$valid}} === undefined)
|
||
|
{{=$valid}} = {{=$result}} {{=$op}}{{?!$exclusive}}={{?}} 0;
|
||
|
{{?}}
|
||
|
|
||
|
{{= $closingBraces }}
|
||
|
|
||
|
if (!{{=$valid}}) {
|
||
|
{{ var $errorKeyword = $keyword; }}
|
||
|
{{# def.error:'_formatLimit' }}
|
||
|
}
|