@@ -139,7 +139,7 @@ export function toOperationChangesDto({
139139} : OperationChanges , logError : ( message : string ) => void ) : OperationChangesDto {
140140 return {
141141 ...rest ,
142- changeSummary : replacePropertyInChangesSummary ( rest . changeSummary , {
142+ changeSummary : replacePropertyInChangesSummary < DiffType , DiffTypeDto > ( rest . changeSummary , {
143143 origin : risky ,
144144 override : SEMI_BREAKING_CHANGE_TYPE ,
145145 } ) ,
@@ -153,45 +153,56 @@ export function toVersionsComparisonDto({
153153} : VersionsComparison , logError : ( message : string ) => void ) : VersionsComparisonDto {
154154 return {
155155 ...rest ,
156- operationTypes : convertDtoFieldOperationTypes ( rest . operationTypes , { origin : risky ,
157- override : SEMI_BREAKING_CHANGE_TYPE } ) ,
156+ operationTypes : convertDtoFieldOperationTypes < DiffType , DiffTypeDto > ( rest . operationTypes , {
157+ origin : risky ,
158+ override : SEMI_BREAKING_CHANGE_TYPE ,
159+ } ) ,
158160 data : data ?. map ( data => toOperationChangesDto ( data , logError ) ) ,
159161 }
160162}
161163
162- export function convertDtoFieldOperationTypes ( operationTypes : ReadonlyArray < OperationType > , {
164+ export function convertDtoFieldOperationTypes <
165+ T extends string | number | symbol = DiffTypeDto ,
166+ J extends string | number | symbol = DiffType >
167+ ( operationTypes : ReadonlyArray < OperationType < T > > , {
163168 origin,
164169 override,
165- } : OptionDiffReplacer = { origin : SEMI_BREAKING_CHANGE_TYPE , override : risky } ) : OperationType < DiffTypeDto > [ ] {
170+ } : OptionDiffReplacer = { origin : SEMI_BREAKING_CHANGE_TYPE , override : risky } ) : OperationType < J > [ ] {
166171 return operationTypes . map ( ( type ) => {
167172 return {
168173 ...type ,
169- changesSummary : replacePropertyInChangesSummary ( type . changesSummary , {
174+ changesSummary : replacePropertyInChangesSummary < T , J > ( type . changesSummary , {
170175 origin,
171176 override,
172177 } ) ,
173- numberOfImpactedOperations : replacePropertyInChangesSummary ( type . numberOfImpactedOperations , {
178+ numberOfImpactedOperations : replacePropertyInChangesSummary < T , J > ( type . numberOfImpactedOperations , {
174179 origin,
175180 override,
176181 } ) ,
177182 }
178183 } )
179184}
180185
181- export function replacePropertyInChangesSummary ( obj : ChangeSummary , {
182- origin,
183- override,
184- } : OptionDiffReplacer = {
185- origin : SEMI_BREAKING_CHANGE_TYPE ,
186- override : risky ,
187- } ) : ChangeSummary < DiffTypeDto | DiffTypeDto > {
186+ export function replacePropertyInChangesSummary <
187+ T extends string | number | symbol = DiffTypeDto ,
188+ J extends string | number | symbol = DiffType >
189+ ( obj : ChangeSummary < T > ,
190+ {
191+ origin,
192+ override,
193+ } : OptionDiffReplacer = {
194+ origin : SEMI_BREAKING_CHANGE_TYPE ,
195+ override : risky ,
196+ } ) : ChangeSummary < J > {
188197 // eslint-disable-next-line @typescript-eslint/ban-ts-comment
189198 // @ts -ignore
190199 obj [ override ] = obj [ origin ]
191200 // eslint-disable-next-line @typescript-eslint/ban-ts-comment
192201 // @ts -ignore
193202 delete obj [ origin ]
194- return obj as ChangeSummary < DiffTypeDto >
203+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
204+ // @ts -ignore
205+ return obj
195206}
196207
197208export type DiffTypeCompare = DiffType | DiffTypeDto
0 commit comments