CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
required.js271 linesDownload Raw Back to dotjs
1'use strict';2module.exports = function generate_required(it, $keyword, $ruleType) {3  var out = ' ';4  var $lvl = it.level;5  var $dataLvl = it.dataLevel;6  var $schema = it.schema[$keyword];7  var $schemaPath = it.schemaPath + it.util.getProperty($keyword);8  var $errSchemaPath = it.errSchemaPath + '/' + $keyword;9  var $breakOnError = !it.opts.allErrors;10  var $data = 'data' + ($dataLvl || '');11  var $valid = 'valid' + $lvl;12  var $isData = it.opts.$data && $schema && $schema.$data,13    $schemaValue;14  if ($isData) {15    out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';16    $schemaValue = 'schema' + $lvl;17  } else {18    $schemaValue = $schema;19  }20  var $vSchema = 'schema' + $lvl;21  if (!$isData) {22    if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {23      var $required = [];24      var arr1 = $schema;25      if (arr1) {26        var $property, i1 = -1,27          l1 = arr1.length - 1;28        while (i1 < l1) {29          $property = arr1[i1 += 1];30          var $propertySch = it.schema.properties[$property];31          if (!($propertySch && (it.opts.strictKeywords ? (typeof $propertySch == 'object' && Object.keys($propertySch).length > 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {32            $required[$required.length] = $property;33          }34        }35      }36    } else {37      var $required = $schema;38    }39  }40  if ($isData || $required.length) {41    var $currentErrorPath = it.errorPath,42      $loopRequired = $isData || $required.length >= it.opts.loopRequired,43      $ownProperties = it.opts.ownProperties;44    if ($breakOnError) {45      out += ' var missing' + ($lvl) + '; ';46      if ($loopRequired) {47        if (!$isData) {48          out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';49        }50        var $i = 'i' + $lvl,51          $propertyPath = 'schema' + $lvl + '[' + $i + ']',52          $missingProperty = '\' + ' + $propertyPath + ' + \'';53        if (it.opts._errorDataPathProperty) {54          it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);55        }56        out += ' var ' + ($valid) + ' = true; ';57        if ($isData) {58          out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';59        }60        out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';61        if ($ownProperties) {62          out += ' &&   Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';63        }64        out += '; if (!' + ($valid) + ') break; } ';65        if ($isData) {66          out += '  }  ';67        }68        out += '  if (!' + ($valid) + ') {   ';69        var $$outStack = $$outStack || [];70        $$outStack.push(out);71        out = ''; /* istanbul ignore else */72        if (it.createErrors !== false) {73          out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';74          if (it.opts.messages !== false) {75            out += ' , message: \'';76            if (it.opts._errorDataPathProperty) {77              out += 'is a required property';78            } else {79              out += 'should have required property \\\'' + ($missingProperty) + '\\\'';80            }81            out += '\' ';82          }83          if (it.opts.verbose) {84            out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';85          }86          out += ' } ';87        } else {88          out += ' {} ';89        }90        var __err = out;91        out = $$outStack.pop();92        if (!it.compositeRule && $breakOnError) {93          /* istanbul ignore if */94          if (it.async) {95            out += ' throw new ValidationError([' + (__err) + ']); ';96          } else {97            out += ' validate.errors = [' + (__err) + ']; return false; ';98          }99        } else {100          out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';101        }102        out += ' } else { ';103      } else {104        out += ' if ( ';105        var arr2 = $required;106        if (arr2) {107          var $propertyKey, $i = -1,108            l2 = arr2.length - 1;109          while ($i < l2) {110            $propertyKey = arr2[$i += 1];111            if ($i) {112              out += ' || ';113            }114            var $prop = it.util.getProperty($propertyKey),115              $useData = $data + $prop;116            out += ' ( ( ' + ($useData) + ' === undefined ';117            if ($ownProperties) {118              out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';119            }120            out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';121          }122        }123        out += ') {  ';124        var $propertyPath = 'missing' + $lvl,125          $missingProperty = '\' + ' + $propertyPath + ' + \'';126        if (it.opts._errorDataPathProperty) {127          it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;128        }129        var $$outStack = $$outStack || [];130        $$outStack.push(out);131        out = ''; /* istanbul ignore else */132        if (it.createErrors !== false) {133          out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';134          if (it.opts.messages !== false) {135            out += ' , message: \'';136            if (it.opts._errorDataPathProperty) {137              out += 'is a required property';138            } else {139              out += 'should have required property \\\'' + ($missingProperty) + '\\\'';140            }141            out += '\' ';142          }143          if (it.opts.verbose) {144            out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';145          }146          out += ' } ';147        } else {148          out += ' {} ';149        }150        var __err = out;151        out = $$outStack.pop();152        if (!it.compositeRule && $breakOnError) {153          /* istanbul ignore if */154          if (it.async) {155            out += ' throw new ValidationError([' + (__err) + ']); ';156          } else {157            out += ' validate.errors = [' + (__err) + ']; return false; ';158          }159        } else {160          out += ' var err = ' + (__err) + ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';161        }162        out += ' } else { ';163      }164    } else {165      if ($loopRequired) {166        if (!$isData) {167          out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';168        }169        var $i = 'i' + $lvl,170          $propertyPath = 'schema' + $lvl + '[' + $i + ']',171          $missingProperty = '\' + ' + $propertyPath + ' + \'';172        if (it.opts._errorDataPathProperty) {173          it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);174        }175        if ($isData) {176          out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) {  var err =   '; /* istanbul ignore else */177          if (it.createErrors !== false) {178            out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';179            if (it.opts.messages !== false) {180              out += ' , message: \'';181              if (it.opts._errorDataPathProperty) {182                out += 'is a required property';183              } else {184                out += 'should have required property \\\'' + ($missingProperty) + '\\\'';185              }186              out += '\' ';187            }188            if (it.opts.verbose) {189              out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';190            }191            out += ' } ';192          } else {193            out += ' {} ';194          }195          out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';196        }197        out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';198        if ($ownProperties) {199          out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';200        }201        out += ') {  var err =   '; /* istanbul ignore else */202        if (it.createErrors !== false) {203          out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';204          if (it.opts.messages !== false) {205            out += ' , message: \'';206            if (it.opts._errorDataPathProperty) {207              out += 'is a required property';208            } else {209              out += 'should have required property \\\'' + ($missingProperty) + '\\\'';210            }211            out += '\' ';212          }213          if (it.opts.verbose) {214            out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';215          }216          out += ' } ';217        } else {218          out += ' {} ';219        }220        out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';221        if ($isData) {222          out += '  }  ';223        }224      } else {225        var arr3 = $required;226        if (arr3) {227          var $propertyKey, i3 = -1,228            l3 = arr3.length - 1;229          while (i3 < l3) {230            $propertyKey = arr3[i3 += 1];231            var $prop = it.util.getProperty($propertyKey),232              $missingProperty = it.util.escapeQuotes($propertyKey),233              $useData = $data + $prop;234            if (it.opts._errorDataPathProperty) {235              it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);236            }237            out += ' if ( ' + ($useData) + ' === undefined ';238            if ($ownProperties) {239              out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') ';240            }241            out += ') {  var err =   '; /* istanbul ignore else */242            if (it.createErrors !== false) {243              out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } ';244              if (it.opts.messages !== false) {245                out += ' , message: \'';246                if (it.opts._errorDataPathProperty) {247                  out += 'is a required property';248                } else {249                  out += 'should have required property \\\'' + ($missingProperty) + '\\\'';250                }251                out += '\' ';252              }253              if (it.opts.verbose) {254                out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';255              }256              out += ' } ';257            } else {258              out += ' {} ';259            }260            out += ';  if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';261          }262        }263      }264    }265    it.errorPath = $currentErrorPath;266  } else if ($breakOnError) {267    out += ' if (true) {';268  }269  return out;270}271 
basant307/AI_Governance_Project · CoolFace