@@ -48,11 +48,11 @@ export const useFunctionValidation = (
48
48
const tempDataTypeFromParameter = new DataType ( replaceGenericKeysInDataTypeObject ( dataTypeFromParameter ?. json ! ! , genericMap ) , dataTypeService )
49
49
const tempDataTypeFromValue = new DataType ( replaceGenericKeysInDataTypeObject ( dataTypeFromValue ?. json ! ! , genericMap ) , dataTypeService )
50
50
return tempDataTypeFromParameter ?. validateDataType ( tempDataTypeFromValue )
51
- } else {
52
- const replacedGenericMapper = replaceGenericKeysInType ( parameter . type , genericMap ) as GenericType
53
- return dataTypeService . getDataType ( parameter . type ) ?. validateValue ( values [ index ] , replacedGenericMapper . generic_mapper )
54
51
}
55
52
53
+ const replacedGenericMapper = replaceGenericKeysInType ( parameter . type , genericMap ) as GenericType
54
+ return dataTypeService . getDataType ( parameter . type ) ?. validateValue ( values [ index ] , replacedGenericMapper . generic_mapper )
55
+
56
56
} else if ( func . genericKeys ?. includes ( String ( parameter . type ) ) ) {
57
57
58
58
const genericTypes = resolveGenericKeyMappings ( typeFromParameter , typeFromValue , func . genericKeys ! ! )
@@ -71,7 +71,20 @@ export const useFunctionValidation = (
71
71
} else if ( dataTypeService . getDataType ( typeFromValue ) && dataTypeFromParameter && dataTypeFromValue && dataTypeFromParameter . genericKeys ) {
72
72
73
73
//parameter is generic but value not
74
- const genericTypes = resolveAllGenericKeysInDataTypeObject ( dataTypeFromParameter . json , dataTypeFromValue . json , dataTypeFromParameter . genericKeys )
74
+ const genericParameterTypes = resolveAllGenericKeysInDataTypeObject ( dataTypeFromParameter . json , dataTypeFromValue . json , dataTypeFromParameter . genericKeys )
75
+ const genericTypes = resolveGenericKeyMappings ( typeFromParameter , {
76
+ ...( typeFromParameter as GenericType ) ,
77
+ generic_mapper : ( typeFromParameter as GenericType ) . generic_mapper ?. map ( mapper => {
78
+ if ( genericParameterTypes [ mapper . generic_target ] ) {
79
+ return {
80
+ types : [ genericParameterTypes [ mapper . generic_target ] ] ,
81
+ generic_target : mapper . generic_target ,
82
+ generic_combination : mapper . generic_combination
83
+ } as GenericMapper
84
+ }
85
+ return mapper
86
+ } )
87
+ } , func . genericKeys ! ! )
75
88
76
89
//store generic mapped real type in map
77
90
func . genericKeys ?. forEach ( genericKey => {
@@ -82,11 +95,11 @@ export const useFunctionValidation = (
82
95
if ( isRefObject ( values [ index ] ) ) {
83
96
const tempDataTypeFromParameter = new DataType ( replaceGenericKeysInDataTypeObject ( dataTypeFromParameter ?. json ! ! , genericMap ) , dataTypeService )
84
97
return tempDataTypeFromParameter ?. validateDataType ( dataTypeFromValue )
85
- } else {
86
- const replacedGenericMapper = replaceGenericKeysInType ( parameter . type , genericMap ) as GenericType
87
- return dataTypeService . getDataType ( replacedGenericMapper ) ?. validateValue ( values [ index ] , replacedGenericMapper . generic_mapper )
88
98
}
89
99
100
+ const replacedGenericMapper = replaceGenericKeysInType ( parameter . type , genericMap ) as GenericType
101
+ return dataTypeService . getDataType ( replacedGenericMapper ) ?. validateValue ( values [ index ] , replacedGenericMapper . generic_mapper )
102
+
90
103
}
91
104
} else if ( dataTypeService . getDataType ( parameter . type ) ) {
92
105
@@ -95,13 +108,6 @@ export const useFunctionValidation = (
95
108
&& "type" in ( typeFromValue as GenericType )
96
109
&& dataTypeService . getDataType ( parameter . type ) ) {
97
110
98
- const genericTypes = resolveGenericKeyMappings ( typeFromParameter , typeFromValue , func . genericKeys ! ! )
99
-
100
- //store generic mapped real type in map
101
- func . genericKeys ?. forEach ( genericKey => {
102
- genericMap . set ( genericKey , genericMap . get ( genericKey ) || genericTypes [ genericKey ] )
103
- } )
104
-
105
111
if ( isRefObject ( values [ index ] ) ) {
106
112
const tempDataTypeFromValue = new DataType ( replaceGenericKeysInDataTypeObject ( dataTypeFromValue ?. json ! ! , genericMap ) , dataTypeService )
107
113
return dataTypeFromParameter ?. validateDataType ( tempDataTypeFromValue )
0 commit comments