Blame view

node_modules/ajv-keywords/keywords/dot/_formatLimit.jst 2.99 KB
ce4c83ff   wxy   初始提交
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
105
106
107
108
109
110
111
112
113
114
115
116
  {{# 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.$data && $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.$data && $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' }}
  }