@@ -44,6 +44,7 @@ export function reduceDependencies({ node, data, key, path }) {
44
44
}
45
45
let workingNode = node . compileSchema ( node . schema , node . spointer , node . schemaId ) ;
46
46
let required = ( _a = workingNode . schema . required ) !== null && _a !== void 0 ? _a : [ ] ;
47
+ let dynamicId = "" ;
47
48
if ( node . dependentRequired ) {
48
49
Object . keys ( node . dependentRequired ) . forEach ( ( propertyName ) => {
49
50
if ( ! hasProperty ( data , propertyName ) && ! required . includes ( propertyName ) ) {
@@ -53,10 +54,14 @@ export function reduceDependencies({ node, data, key, path }) {
53
54
return ;
54
55
}
55
56
required . push ( ...node . dependentRequired [ propertyName ] ) ;
57
+ // @dynamicId
58
+ const localDynamicId = `dependencies/${ propertyName } ` ;
59
+ dynamicId += `${ dynamicId === "" ? "" : "," } ${ localDynamicId } ` ;
56
60
} ) ;
57
61
}
58
62
if ( node . dependentSchemas ) {
59
63
Object . keys ( node . dependentSchemas ) . forEach ( ( propertyName ) => {
64
+ var _a , _b ;
60
65
if ( ! hasProperty ( data , propertyName ) && ! required . includes ( propertyName ) ) {
61
66
return true ;
62
67
}
@@ -74,6 +79,10 @@ export function reduceDependencies({ node, data, key, path }) {
74
79
if ( workingNode . schema . required ) {
75
80
required . push ( ...workingNode . schema . required ) ;
76
81
}
82
+ // @dynamicId
83
+ const nestedDynamicId = ( _b = ( _a = reducedDependency . dynamicId ) === null || _a === void 0 ? void 0 : _a . replace ( node . dynamicId , "" ) ) !== null && _b !== void 0 ? _b : "" ;
84
+ const localDynamicId = nestedDynamicId === "" ? `dependencies/${ propertyName } ` : nestedDynamicId ;
85
+ dynamicId += `${ dynamicId === "" ? "" : "," } ${ localDynamicId } ` ;
77
86
} ) ;
78
87
}
79
88
if ( workingNode === node ) {
@@ -88,7 +97,7 @@ export function reduceDependencies({ node, data, key, path }) {
88
97
required = workingNode . schema . required ? workingNode . schema . required . concat ( ...required ) : required ;
89
98
required = required . filter ( ( r , index , list ) => list . indexOf ( r ) === index ) ;
90
99
workingNode = mergeNode ( workingNode , workingNode , "dependencies" ) ;
91
- return workingNode . compileSchema ( { ...workingNode . schema , required } , workingNode . spointer , workingNode . schemaId ) ;
100
+ return workingNode . compileSchema ( { ...workingNode . schema , required } , workingNode . spointer , workingNode . schemaId , ` ${ node . schemaId } ( ${ dynamicId } )` ) ;
92
101
}
93
102
function validateDependencies ( { node, data, pointer, path } ) {
94
103
var _a ;
0 commit comments