1 | {{# def.definitions }}
|
---|
2 | {{# def.errors }}
|
---|
3 | {{# def.setupKeyword }}
|
---|
4 |
|
---|
5 | var {{=$valid}} = undefined;
|
---|
6 |
|
---|
7 | {{## def.skipFormatLimit:
|
---|
8 | {{=$valid}} = true;
|
---|
9 | {{ return out; }}
|
---|
10 | #}}
|
---|
11 |
|
---|
12 | {{## def.compareFormat:
|
---|
13 | {{? $isData }}
|
---|
14 | if ({{=$schemaValue}} === undefined) {{=$valid}} = true;
|
---|
15 | else if (typeof {{=$schemaValue}} != 'string') {{=$valid}} = false;
|
---|
16 | else {
|
---|
17 | {{ $closingBraces += '}'; }}
|
---|
18 | {{?}}
|
---|
19 |
|
---|
20 | {{? $isDataFormat }}
|
---|
21 | if (!{{=$compare}}) {{=$valid}} = true;
|
---|
22 | else {
|
---|
23 | {{ $closingBraces += '}'; }}
|
---|
24 | {{?}}
|
---|
25 |
|
---|
26 | var {{=$result}} = {{=$compare}}({{=$data}}, {{# def.schemaValueQS }});
|
---|
27 |
|
---|
28 | if ({{=$result}} === undefined) {{=$valid}} = false;
|
---|
29 | #}}
|
---|
30 |
|
---|
31 |
|
---|
32 | {{? it.opts.format === false }}{{# def.skipFormatLimit }}{{?}}
|
---|
33 |
|
---|
34 | {{
|
---|
35 | var $schemaFormat = it.schema.format
|
---|
36 | , $isDataFormat = it.opts.$data && $schemaFormat.$data
|
---|
37 | , $closingBraces = '';
|
---|
38 | }}
|
---|
39 |
|
---|
40 | {{? $isDataFormat }}
|
---|
41 | {{
|
---|
42 | var $schemaValueFormat = it.util.getData($schemaFormat.$data, $dataLvl, it.dataPathArr)
|
---|
43 | , $format = 'format' + $lvl
|
---|
44 | , $compare = 'compare' + $lvl;
|
---|
45 | }}
|
---|
46 |
|
---|
47 | var {{=$format}} = formats[{{=$schemaValueFormat}}]
|
---|
48 | , {{=$compare}} = {{=$format}} && {{=$format}}.compare;
|
---|
49 | {{??}}
|
---|
50 | {{ var $format = it.formats[$schemaFormat]; }}
|
---|
51 | {{? !($format && $format.compare) }}
|
---|
52 | {{# def.skipFormatLimit }}
|
---|
53 | {{?}}
|
---|
54 | {{ var $compare = 'formats' + it.util.getProperty($schemaFormat) + '.compare'; }}
|
---|
55 | {{?}}
|
---|
56 |
|
---|
57 | {{
|
---|
58 | var $isMax = $keyword == 'formatMaximum'
|
---|
59 | , $exclusiveKeyword = 'formatExclusive' + ($isMax ? 'Maximum' : 'Minimum')
|
---|
60 | , $schemaExcl = it.schema[$exclusiveKeyword]
|
---|
61 | , $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data
|
---|
62 | , $op = $isMax ? '<' : '>'
|
---|
63 | , $result = 'result' + $lvl;
|
---|
64 | }}
|
---|
65 |
|
---|
66 | {{# def.$data }}
|
---|
67 |
|
---|
68 |
|
---|
69 | {{? $isDataExcl }}
|
---|
70 | {{
|
---|
71 | var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr)
|
---|
72 | , $exclusive = 'exclusive' + $lvl
|
---|
73 | , $opExpr = 'op' + $lvl
|
---|
74 | , $opStr = '\' + ' + $opExpr + ' + \'';
|
---|
75 | }}
|
---|
76 | var schemaExcl{{=$lvl}} = {{=$schemaValueExcl}};
|
---|
77 | {{ $schemaValueExcl = 'schemaExcl' + $lvl; }}
|
---|
78 |
|
---|
79 | if (typeof {{=$schemaValueExcl}} != 'boolean' && {{=$schemaValueExcl}} !== undefined) {
|
---|
80 | {{=$valid}} = false;
|
---|
81 | {{ var $errorKeyword = $exclusiveKeyword; }}
|
---|
82 | {{# def.error:'_formatExclusiveLimit' }}
|
---|
83 | }
|
---|
84 |
|
---|
85 | {{# def.elseIfValid }}
|
---|
86 |
|
---|
87 | {{# def.compareFormat }}
|
---|
88 | var {{=$exclusive}} = {{=$schemaValueExcl}} === true;
|
---|
89 |
|
---|
90 | if ({{=$valid}} === undefined) {
|
---|
91 | {{=$valid}} = {{=$exclusive}}
|
---|
92 | ? {{=$result}} {{=$op}} 0
|
---|
93 | : {{=$result}} {{=$op}}= 0;
|
---|
94 | }
|
---|
95 |
|
---|
96 | if (!{{=$valid}}) var op{{=$lvl}} = {{=$exclusive}} ? '{{=$op}}' : '{{=$op}}=';
|
---|
97 | {{??}}
|
---|
98 | {{
|
---|
99 | var $exclusive = $schemaExcl === true
|
---|
100 | , $opStr = $op; /*used in error*/
|
---|
101 | if (!$exclusive) $opStr += '=';
|
---|
102 | var $opExpr = '\'' + $opStr + '\''; /*used in error*/
|
---|
103 | }}
|
---|
104 |
|
---|
105 | {{# def.compareFormat }}
|
---|
106 |
|
---|
107 | if ({{=$valid}} === undefined)
|
---|
108 | {{=$valid}} = {{=$result}} {{=$op}}{{?!$exclusive}}={{?}} 0;
|
---|
109 | {{?}}
|
---|
110 |
|
---|
111 | {{= $closingBraces }}
|
---|
112 |
|
---|
113 | if (!{{=$valid}}) {
|
---|
114 | {{ var $errorKeyword = $keyword; }}
|
---|
115 | {{# def.error:'_formatLimit' }}
|
---|
116 | }
|
---|