Blame view

node_modules/ajv/lib/dot/_limit.jst 3.48 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
  {{# def.definitions }}
  {{# def.errors }}
  {{# def.setupKeyword }}
  {{# def.$data }}
  
  {{## def.setExclusiveLimit:
    $exclusive = true;
    $errorKeyword = $exclusiveKeyword;
    $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
  #}}
  
  {{
    var $isMax = $keyword == 'maximum'
      , $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum'
      , $schemaExcl = it.schema[$exclusiveKeyword]
      , $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data
      , $op = $isMax ? '<' : '>'
      , $notOp = $isMax ? '>' : '<'
      , $errorKeyword = undefined;
  }}
  
  {{? $isDataExcl }}
    {{
      var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr)
        , $exclusive = 'exclusive' + $lvl
        , $exclType = 'exclType' + $lvl
        , $exclIsNumber = 'exclIsNumber' + $lvl
        , $opExpr = 'op' + $lvl
        , $opStr = '\' + ' + $opExpr + ' + \'';
    }}
    var schemaExcl{{=$lvl}} = {{=$schemaValueExcl}};
    {{ $schemaValueExcl = 'schemaExcl' + $lvl; }}
  
    var {{=$exclusive}};
    var {{=$exclType}} = typeof {{=$schemaValueExcl}};
    if ({{=$exclType}} != 'boolean' && {{=$exclType}} != 'undefined' && {{=$exclType}} != 'number') {
      {{ var $errorKeyword = $exclusiveKeyword; }}
      {{# def.error:'_exclusiveLimit' }}
    } else if ({{# def.$dataNotType:'number' }}
              {{=$exclType}} == 'number'
                ? (
                    ({{=$exclusive}} = {{=$schemaValue}} === undefined || {{=$schemaValueExcl}} {{=$op}}= {{=$schemaValue}})
                      ? {{=$data}} {{=$notOp}}= {{=$schemaValueExcl}}
                      : {{=$data}} {{=$notOp}} {{=$schemaValue}}
                  )
                : (
                    ({{=$exclusive}} = {{=$schemaValueExcl}} === true)
                      ? {{=$data}} {{=$notOp}}= {{=$schemaValue}}
                      : {{=$data}} {{=$notOp}} {{=$schemaValue}}
                  )
              || {{=$data}} !== {{=$data}}) {
      var op{{=$lvl}} = {{=$exclusive}} ? '{{=$op}}' : '{{=$op}}=';
      {{
        if ($schema === undefined) {
          $errorKeyword = $exclusiveKeyword;
          $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;
          $schemaValue = $schemaValueExcl;
          $isData = $isDataExcl;
        }
      }}
  {{??}}
    {{
      var $exclIsNumber = typeof $schemaExcl == 'number'
        , $opStr = $op;  /*used in error*/
    }}
  
    {{? $exclIsNumber && $isData }}
      {{ var $opExpr = '\'' + $opStr + '\''; /*used in error*/ }}
      if ({{# def.$dataNotType:'number' }}
          ( {{=$schemaValue}} === undefined
            || {{=$schemaExcl}} {{=$op}}= {{=$schemaValue}}
              ? {{=$data}} {{=$notOp}}= {{=$schemaExcl}}
              : {{=$data}} {{=$notOp}} {{=$schemaValue}} )
          || {{=$data}} !== {{=$data}}) {
    {{??}}
      {{
        if ($exclIsNumber && $schema === undefined) {
            {{# def.setExclusiveLimit }}
            $schemaValue = $schemaExcl;
            $notOp += '=';
        } else {
          if ($exclIsNumber)
            $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);
  
          if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {
            {{# def.setExclusiveLimit }}
            $notOp += '=';
          } else {
            $exclusive = false;
            $opStr += '=';
          }
        }
  
        var $opExpr = '\'' + $opStr + '\''; /*used in error*/
      }}
  
      if ({{# def.$dataNotType:'number' }}
          {{=$data}} {{=$notOp}} {{=$schemaValue}}
          || {{=$data}} !== {{=$data}}) {
    {{?}}
  {{?}}
      {{ $errorKeyword = $errorKeyword || $keyword; }}
      {{# def.error:'_limit' }}
    } {{? $breakOnError }} else { {{?}}