@@ -52,6 +52,7 @@ export function reduceDependencies({ node, data, key, path }: JsonSchemaReducerP
52
52
let workingNode = node . compileSchema ( node . schema , node . spointer , node . schemaId ) ;
53
53
let required = workingNode . schema . required ?? [ ] ;
54
54
55
+ let dynamicId = "" ;
55
56
if ( node . dependentRequired ) {
56
57
Object . keys ( node . dependentRequired ) . forEach ( ( propertyName ) => {
57
58
if ( ! hasProperty ( data , propertyName ) && ! required . includes ( propertyName ) ) {
@@ -61,6 +62,10 @@ export function reduceDependencies({ node, data, key, path }: JsonSchemaReducerP
61
62
return ;
62
63
}
63
64
required . push ( ...node . dependentRequired [ propertyName ] ) ;
65
+
66
+ // @dynamicId
67
+ const localDynamicId = `dependencies/${ propertyName } ` ;
68
+ dynamicId += `${ dynamicId === "" ? "" : "," } ${ localDynamicId } ` ;
64
69
} ) ;
65
70
}
66
71
@@ -85,6 +90,11 @@ export function reduceDependencies({ node, data, key, path }: JsonSchemaReducerP
85
90
if ( workingNode . schema . required ) {
86
91
required . push ( ...workingNode . schema . required ) ;
87
92
}
93
+
94
+ // @dynamicId
95
+ const nestedDynamicId = reducedDependency . dynamicId ?. replace ( node . dynamicId , "" ) ?? "" ;
96
+ const localDynamicId = nestedDynamicId === "" ? `dependencies/${ propertyName } ` : nestedDynamicId ;
97
+ dynamicId += `${ dynamicId === "" ? "" : "," } ${ localDynamicId } ` ;
88
98
} ) ;
89
99
}
90
100
@@ -103,7 +113,12 @@ export function reduceDependencies({ node, data, key, path }: JsonSchemaReducerP
103
113
required = workingNode . schema . required ? workingNode . schema . required . concat ( ...required ) : required ;
104
114
required = required . filter ( ( r : string , index : number , list : string [ ] ) => list . indexOf ( r ) === index ) ;
105
115
workingNode = mergeNode ( workingNode , workingNode , "dependencies" ) ;
106
- return workingNode . compileSchema ( { ...workingNode . schema , required } , workingNode . spointer , workingNode . schemaId ) ;
116
+ return workingNode . compileSchema (
117
+ { ...workingNode . schema , required } ,
118
+ workingNode . spointer ,
119
+ workingNode . schemaId ,
120
+ `${ node . schemaId } (${ dynamicId } )`
121
+ ) ;
107
122
}
108
123
109
124
function validateDependencies ( { node, data, pointer, path } : JsonSchemaValidatorParams ) {
0 commit comments