1
|
{{# def.definitions }}
|
2
|
{{# def.errors }}
|
3
|
{{# def.setupKeyword }}
|
4
|
|
5
|
{{## def._validateRef:_v:
|
6
|
{{? it.opts.passContext }}
|
7
|
{{=_v}}.call(this,
|
8
|
{{??}}
|
9
|
{{=_v}}(
|
10
|
{{?}}
|
11
|
{{=$data}}, {{# def.dataPath }}{{# def.passParentData }}, rootData)
|
12
|
#}}
|
13
|
|
14
|
{{ var $async, $refCode; }}
|
15
|
{{? $schema == '#' || $schema == '#/' }}
|
16
|
{{
|
17
|
if (it.isRoot) {
|
18
|
$async = it.async;
|
19
|
$refCode = 'validate';
|
20
|
} else {
|
21
|
$async = it.root.schema.$async === true;
|
22
|
$refCode = 'root.refVal[0]';
|
23
|
}
|
24
|
}}
|
25
|
{{??}}
|
26
|
{{ var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot); }}
|
27
|
{{? $refVal === undefined }}
|
28
|
{{ var $message = it.MissingRefError.message(it.baseId, $schema); }}
|
29
|
{{? it.opts.missingRefs == 'fail' }}
|
30
|
{{ it.logger.error($message); }}
|
31
|
{{# def.error:'$ref' }}
|
32
|
{{? $breakOnError }} if (false) { {{?}}
|
33
|
{{?? it.opts.missingRefs == 'ignore' }}
|
34
|
{{ it.logger.warn($message); }}
|
35
|
{{? $breakOnError }} if (true) { {{?}}
|
36
|
{{??}}
|
37
|
{{ throw new it.MissingRefError(it.baseId, $schema, $message); }}
|
38
|
{{?}}
|
39
|
{{?? $refVal.inline }}
|
40
|
{{# def.setupNextLevel }}
|
41
|
{{
|
42
|
$it.schema = $refVal.schema;
|
43
|
$it.schemaPath = '';
|
44
|
$it.errSchemaPath = $schema;
|
45
|
}}
|
46
|
{{ var $code = it.validate($it).replace(/validate\.schema/g, $refVal.code); }}
|
47
|
{{= $code }}
|
48
|
{{? $breakOnError}}
|
49
|
if ({{=$nextValid}}) {
|
50
|
{{?}}
|
51
|
{{??}}
|
52
|
{{
|
53
|
$async = $refVal.$async === true || (it.async && $refVal.$async !== false);
|
54
|
$refCode = $refVal.code;
|
55
|
}}
|
56
|
{{?}}
|
57
|
{{?}}
|
58
|
|
59
|
{{? $refCode }}
|
60
|
{{# def.beginDefOut}}
|
61
|
{{# def._validateRef:$refCode }}
|
62
|
{{# def.storeDefOut:__callValidate }}
|
63
|
|
64
|
{{? $async }}
|
65
|
{{ if (!it.async) throw new Error('async schema referenced by sync schema'); }}
|
66
|
{{? $breakOnError }} var {{=$valid}}; {{?}}
|
67
|
try {
|
68
|
await {{=__callValidate}};
|
69
|
{{? $breakOnError }} {{=$valid}} = true; {{?}}
|
70
|
} catch (e) {
|
71
|
if (!(e instanceof ValidationError)) throw e;
|
72
|
if (vErrors === null) vErrors = e.errors;
|
73
|
else vErrors = vErrors.concat(e.errors);
|
74
|
errors = vErrors.length;
|
75
|
{{? $breakOnError }} {{=$valid}} = false; {{?}}
|
76
|
}
|
77
|
{{? $breakOnError }} if ({{=$valid}}) { {{?}}
|
78
|
{{??}}
|
79
|
if (!{{=__callValidate}}) {
|
80
|
if (vErrors === null) vErrors = {{=$refCode}}.errors;
|
81
|
else vErrors = vErrors.concat({{=$refCode}}.errors);
|
82
|
errors = vErrors.length;
|
83
|
} {{? $breakOnError }} else { {{?}}
|
84
|
{{?}}
|
85
|
{{?}}
|