| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | {{# 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;  if (!($isData || typeof $schema == 'number' || $schema === undefined)) {    throw new Error($keyword + ' must be number');  }  if (!($isDataExcl || $schemaExcl === undefined                    || typeof $schemaExcl == 'number'                    || typeof $schemaExcl == 'boolean')) {    throw new Error($exclusiveKeyword + ' must be number or boolean');  }}}{{? $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 { {{?}}
 |