|
|
- {{# 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 { {{?}}
- {{?}}
- {{?}}
|