Projekt

Obecné

Profil

Stáhnout (3.48 KB) Statistiky
| Větev: | Revize:
1
{{# def.definitions }}
2
{{# def.errors }}
3
{{# def.setupKeyword }}
4
{{# def.$data }}
5

    
6
{{## def.setExclusiveLimit:
7
  $exclusive = true;
8
  $errorKeyword = $exclusiveKeyword;
9
  $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
10
#}}
11

    
12
{{
13
  var $isMax = $keyword == 'maximum'
14
    , $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum'
15
    , $schemaExcl = it.schema[$exclusiveKeyword]
16
    , $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data
17
    , $op = $isMax ? '<' : '>'
18
    , $notOp = $isMax ? '>' : '<'
19
    , $errorKeyword = undefined;
20
}}
21

    
22
{{? $isDataExcl }}
23
  {{
24
    var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr)
25
      , $exclusive = 'exclusive' + $lvl
26
      , $exclType = 'exclType' + $lvl
27
      , $exclIsNumber = 'exclIsNumber' + $lvl
28
      , $opExpr = 'op' + $lvl
29
      , $opStr = '\' + ' + $opExpr + ' + \'';
30
  }}
31
  var schemaExcl{{=$lvl}} = {{=$schemaValueExcl}};
32
  {{ $schemaValueExcl = 'schemaExcl' + $lvl; }}
33

    
34
  var {{=$exclusive}};
35
  var {{=$exclType}} = typeof {{=$schemaValueExcl}};
36
  if ({{=$exclType}} != 'boolean' && {{=$exclType}} != 'undefined' && {{=$exclType}} != 'number') {
37
    {{ var $errorKeyword = $exclusiveKeyword; }}
38
    {{# def.error:'_exclusiveLimit' }}
39
  } else if ({{# def.$dataNotType:'number' }}
40
            {{=$exclType}} == 'number'
41
              ? (
42
                  ({{=$exclusive}} = {{=$schemaValue}} === undefined || {{=$schemaValueExcl}} {{=$op}}= {{=$schemaValue}})
43
                    ? {{=$data}} {{=$notOp}}= {{=$schemaValueExcl}}
44
                    : {{=$data}} {{=$notOp}} {{=$schemaValue}}
45
                )
46
              : (
47
                  ({{=$exclusive}} = {{=$schemaValueExcl}} === true)
48
                    ? {{=$data}} {{=$notOp}}= {{=$schemaValue}}
49
                    : {{=$data}} {{=$notOp}} {{=$schemaValue}}
50
                )
51
            || {{=$data}} !== {{=$data}}) {
52
    var op{{=$lvl}} = {{=$exclusive}} ? '{{=$op}}' : '{{=$op}}=';
53
    {{
54
      if ($schema === undefined) {
55
        $errorKeyword = $exclusiveKeyword;
56
        $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
57
        $schemaValue = $schemaValueExcl;
58
        $isData = $isDataExcl;
59
      }
60
    }}
61
{{??}}
62
  {{
63
    var $exclIsNumber = typeof $schemaExcl == 'number'
64
      , $opStr = $op;  /*used in error*/
65
  }}
66

    
67
  {{? $exclIsNumber && $isData }}
68
    {{ var $opExpr = '\'' + $opStr + '\''; /*used in error*/ }}
69
    if ({{# def.$dataNotType:'number' }}
70
        ( {{=$schemaValue}} === undefined
71
          || {{=$schemaExcl}} {{=$op}}= {{=$schemaValue}}
72
            ? {{=$data}} {{=$notOp}}= {{=$schemaExcl}}
73
            : {{=$data}} {{=$notOp}} {{=$schemaValue}} )
74
        || {{=$data}} !== {{=$data}}) {
75
  {{??}}
76
    {{
77
      if ($exclIsNumber && $schema === undefined) {
78
          {{# def.setExclusiveLimit }}
79
          $schemaValue = $schemaExcl;
80
          $notOp += '=';
81
      } else {
82
        if ($exclIsNumber)
83
          $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);
84

    
85
        if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {
86
          {{# def.setExclusiveLimit }}
87
          $notOp += '=';
88
        } else {
89
          $exclusive = false;
90
          $opStr += '=';
91
        }
92
      }
93

    
94
      var $opExpr = '\'' + $opStr + '\''; /*used in error*/
95
    }}
96

    
97
    if ({{# def.$dataNotType:'number' }}
98
        {{=$data}} {{=$notOp}} {{=$schemaValue}}
99
        || {{=$data}} !== {{=$data}}) {
100
  {{?}}
101
{{?}}
102
    {{ $errorKeyword = $errorKeyword || $keyword; }}
103
    {{# def.error:'_limit' }}
104
  } {{? $breakOnError }} else { {{?}}
(1-1/30)