1 line
30 KiB
JSON
1 line
30 KiB
JSON
{"ast":null,"code":"'use strict';\n\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n\n if ($isData) {\n out += ' var schema' + $lvl + ' = ' + it.util.getData($schema.$data, $dataLvl, it.dataPathArr) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + $definition + ' = RULES.custom[\\'' + $keyword + '\\'].definition; var ' + $validateCode + ' = ' + $definition + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n\n if (!($inline || $macro)) {\n out += '' + $ruleErrs + ' = null;';\n }\n\n out += 'var ' + $errs + ' = errors;var ' + $valid + ';';\n\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + $schemaValue + ' === undefined) { ' + $valid + ' = true; } else { ';\n\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + $valid + ' = ' + $definition + '.validateSchema(' + $schemaValue + '); if (' + $valid + ') { ';\n }\n }\n\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + $ruleValidate.validate + ' ';\n } else {\n out += ' ' + $valid + ' = ' + $ruleValidate.validate + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + $code;\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + $validateCode + '.call( ';\n\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n\n if ($compile || $rDef.schema === false) {\n out += ' , ' + $data + ' ';\n } else {\n out += ' , ' + $schemaValue + ' , ' + $data + ' , validate.schema' + it.schemaPath + ' ';\n }\n\n out += ' , (dataPath || \\'\\')';\n\n if (it.errorPath != '\"\"') {\n out += ' + ' + it.errorPath;\n }\n\n var $parentData = $dataLvl ? 'data' + ($dataLvl - 1 || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + $parentData + ' , ' + $parentDataProperty + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n\n if ($rDef.errors === false) {\n out += ' ' + $valid + ' = ';\n\n if ($asyncKeyword) {\n out += 'await ';\n }\n\n out += '' + def_callRuleValidate + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + $ruleErrs + ' = null; try { ' + $valid + ' = await ' + def_callRuleValidate + '; } catch (e) { ' + $valid + ' = false; if (e instanceof ValidationError) ' + $ruleErrs + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + $ruleErrs + ' = null; ' + $valid + ' = ' + def_callRuleValidate + '; ';\n }\n }\n }\n\n if ($rDef.modifying) {\n out += ' if (' + $parentData + ') ' + $data + ' = ' + $parentData + '[' + $parentDataProperty + '];';\n }\n\n out += '' + $closingBraces;\n\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n\n if ($rDef.valid === undefined) {\n out += ' !';\n\n if ($macro) {\n out += '' + $nextValid;\n } else {\n out += '' + $valid;\n }\n } else {\n out += ' ' + !$rDef.valid + ' ';\n }\n\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n /* istanbul ignore else */\n\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { keyword: \\'' + $rule.keyword + '\\' } ';\n\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + $rule.keyword + '\" keyword validation\\' ';\n }\n\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n }\n\n out += ' } ';\n } else {\n out += ' {} ';\n }\n\n var __err = out;\n out = $$outStack.pop();\n\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + __err + ']); ';\n } else {\n out += ' validate.errors = [' + __err + ']; return false; ';\n }\n } else {\n out += ' var err = ' + __err + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n\n var def_customError = out;\n out = $$outStack.pop();\n\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + $i + '=' + $errs + '; ' + $i + '<errors; ' + $i + '++) { var ' + $ruleErr + ' = vErrors[' + $i + ']; if (' + $ruleErr + '.dataPath === undefined) ' + $ruleErr + '.dataPath = (dataPath || \\'\\') + ' + it.errorPath + '; if (' + $ruleErr + '.schemaPath === undefined) { ' + $ruleErr + '.schemaPath = \"' + $errSchemaPath + '\"; } ';\n\n if (it.opts.verbose) {\n out += ' ' + $ruleErr + '.schema = ' + $schemaValue + '; ' + $ruleErr + '.data = ' + $data + '; ';\n }\n\n out += ' } ';\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + def_customError + ' ';\n } else {\n out += ' if (' + $errs + ' == errors) { ' + def_customError + ' } else { for (var ' + $i + '=' + $errs + '; ' + $i + '<errors; ' + $i + '++) { var ' + $ruleErr + ' = vErrors[' + $i + ']; if (' + $ruleErr + '.dataPath === undefined) ' + $ruleErr + '.dataPath = (dataPath || \\'\\') + ' + it.errorPath + '; if (' + $ruleErr + '.schemaPath === undefined) { ' + $ruleErr + '.schemaPath = \"' + $errSchemaPath + '\"; } ';\n\n if (it.opts.verbose) {\n out += ' ' + $ruleErr + '.schema = ' + $schemaValue + '; ' + $ruleErr + '.data = ' + $data + '; ';\n }\n\n out += ' } } ';\n }\n }\n } else if ($macro) {\n out += ' var err = ';\n /* istanbul ignore else */\n\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + it.errorPath + ' , schemaPath: ' + it.util.toQuotedString($errSchemaPath) + ' , params: { keyword: \\'' + $rule.keyword + '\\' } ';\n\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + $rule.keyword + '\" keyword validation\\' ';\n }\n\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + $schemaPath + ' , parentSchema: validate.schema' + it.schemaPath + ' , data: ' + $data + ' ';\n }\n\n out += ' } ';\n } else {\n out += ' {} ';\n }\n\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + def_customError + ' ';\n } else {\n out += ' if (Array.isArray(' + $ruleErrs + ')) { if (vErrors === null) vErrors = ' + $ruleErrs + '; else vErrors = vErrors.concat(' + $ruleErrs + '); errors = vErrors.length; for (var ' + $i + '=' + $errs + '; ' + $i + '<errors; ' + $i + '++) { var ' + $ruleErr + ' = vErrors[' + $i + ']; if (' + $ruleErr + '.dataPath === undefined) ' + $ruleErr + '.dataPath = (dataPath || \\'\\') + ' + it.errorPath + '; ' + $ruleErr + '.schemaPath = \"' + $errSchemaPath + '\"; ';\n\n if (it.opts.verbose) {\n out += ' ' + $ruleErr + '.schema = ' + $schemaValue + '; ' + $ruleErr + '.data = ' + $data + '; ';\n }\n\n out += ' } } else { ' + def_customError + ' } ';\n }\n }\n\n out += ' } ';\n\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n\n return out;\n};","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/ajv/lib/dotjs/custom.js"],"names":["module","exports","generate_custom","it","$keyword","$ruleType","out","$lvl","level","$dataLvl","dataLevel","$schema","schema","$schemaPath","schemaPath","util","getProperty","$errSchemaPath","errSchemaPath","$breakOnError","opts","allErrors","$errorKeyword","$data","$valid","$errs","$isData","$schemaValue","getData","dataPathArr","$rule","$definition","$rDef","definition","$closingBraces","$compile","$inline","$macro","$ruleValidate","$validateCode","$validateSchema","validateSchema","useCustomRule","code","compile","inline","macro","$ruleErrs","$i","$ruleErr","$asyncKeyword","async","Error","statements","validate","$it","copy","$nextValid","$wasComposite","compositeRule","$code","replace","$$outStack","push","passContext","errorPath","$parentData","$parentDataProperty","def_callRuleValidate","pop","errors","modifying","valid","undefined","keyword","createErrors","toQuotedString","messages","verbose","__err","def_customError"],"mappings":"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","sourcesContent":["'use strict';\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } ';\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } ';\n }\n }\n } else if ($macro) {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } else { ' + (def_customError) + ' } ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n return out;\n}\n"]},"metadata":{},"sourceType":"script"} |