Spaces:
Runtime error
Runtime error
{{# def.definitions }} | |
{{# def.errors }} | |
{{# def.setupKeyword }} | |
{{## def._validateRef:_v: | |
{{? it.opts.passContext }} | |
{{=_v}}.call(this, | |
{{??}} | |
{{=_v}}( | |
{{?}} | |
{{=$data}}, {{# def.dataPath }}{{# def.passParentData }}, rootData) | |
#}} | |
{{ var $async, $refCode; }} | |
{{? $schema == '#' || $schema == '#/' }} | |
{{ | |
if (it.isRoot) { | |
$async = it.async; | |
$refCode = 'validate'; | |
} else { | |
$async = it.root.schema.$async === true; | |
$refCode = 'root.refVal[0]'; | |
} | |
}} | |
{{??}} | |
{{ var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot); }} | |
{{? $refVal === undefined }} | |
{{ var $message = it.MissingRefError.message(it.baseId, $schema); }} | |
{{? it.opts.missingRefs == 'fail' }} | |
{{ it.logger.error($message); }} | |
{{# def.error:'$ref' }} | |
{{? $breakOnError }} if (false) { {{?}} | |
{{?? it.opts.missingRefs == 'ignore' }} | |
{{ it.logger.warn($message); }} | |
{{? $breakOnError }} if (true) { {{?}} | |
{{??}} | |
{{ throw new it.MissingRefError(it.baseId, $schema, $message); }} | |
{{?}} | |
{{?? $refVal.inline }} | |
{{# def.setupNextLevel }} | |
{{ | |
$it.schema = $refVal.schema; | |
$it.schemaPath = ''; | |
$it.errSchemaPath = $schema; | |
}} | |
{{ var $code = it.validate($it).replace(/validate\.schema/g, $refVal.code); }} | |
{{= $code }} | |
{{? $breakOnError}} | |
if ({{=$nextValid}}) { | |
{{?}} | |
{{??}} | |
{{ | |
$async = $refVal.$async === true || (it.async && $refVal.$async !== false); | |
$refCode = $refVal.code; | |
}} | |
{{?}} | |
{{?}} | |
{{? $refCode }} | |
{{# def.beginDefOut}} | |
{{# def._validateRef:$refCode }} | |
{{# def.storeDefOut:__callValidate }} | |
{{? $async }} | |
{{ if (!it.async) throw new Error('async schema referenced by sync schema'); }} | |
{{? $breakOnError }} var {{=$valid}}; {{?}} | |
try { | |
await {{=__callValidate}}; | |
{{? $breakOnError }} {{=$valid}} = true; {{?}} | |
} catch (e) { | |
if (!(e instanceof ValidationError)) throw e; | |
if (vErrors === null) vErrors = e.errors; | |
else vErrors = vErrors.concat(e.errors); | |
errors = vErrors.length; | |
{{? $breakOnError }} {{=$valid}} = false; {{?}} | |
} | |
{{? $breakOnError }} if ({{=$valid}}) { {{?}} | |
{{??}} | |
if (!{{=__callValidate}}) { | |
if (vErrors === null) vErrors = {{=$refCode}}.errors; | |
else vErrors = vErrors.concat({{=$refCode}}.errors); | |
errors = vErrors.length; | |
} {{? $breakOnError }} else { {{?}} | |
{{?}} | |
{{?}} | |