Skip to content

Commit 23e21d1

Browse files
author
Iurii Golovinskii
committed
[FE][Part 2] update types for converterDto
1 parent 5b0282c commit 23e21d1

File tree

1 file changed

+26
-15
lines changed

1 file changed

+26
-15
lines changed

src/utils/transformToDto.ts

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

197208
export type DiffTypeCompare = DiffType | DiffTypeDto

0 commit comments

Comments
 (0)