Skip to content

Commit 3388550

Browse files
author
Iurii Golovinskii
committed
transform to dto only zip files
1 parent 3067eee commit 3388550

File tree

6 files changed

+47
-40
lines changed

6 files changed

+47
-40
lines changed

src/builder.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import type {
1818
BuildConfig,
1919
BuildConfigFile,
20-
BuildConfigRef, DiffTypeDto,
20+
BuildConfigRef,
2121
FileId,
2222
OperationId,
2323
OperationsApiType,
@@ -29,6 +29,7 @@ import type {
2929
ResolvedOperations,
3030
ResolvedVersionOperationsHashMap,
3131
VersionId,
32+
VersionsComparison,
3233
} from './types'
3334
import {
3435
ApiBuilder,
@@ -45,7 +46,6 @@ import {
4546
OperationChanges,
4647
VersionCache,
4748
VersionDocument,
48-
VersionsComparisonDto,
4949
} from './types/internal'
5050
import type { NotificationMessage, PackageConfig } from './types/package'
5151
import { graphqlApiBuilder, REST_API_TYPE, restApiBuilder, textApiBuilder, unknownApiBuilder } from './apitypes'
@@ -73,7 +73,7 @@ export class PackageVersionBuilder implements IPackageVersionBuilder {
7373
apiBuilders: ApiBuilder[] = []
7474
documents = new Map<string, VersionDocument>()
7575
operations = new Map<string, ApiOperation>()
76-
comparisons: VersionsComparisonDto<DiffTypeDto>[] = []
76+
comparisons: VersionsComparison[] = []
7777

7878
versionsCache = new Map<string, VersionCache>()
7979
referencesCache = new Map<string, BuildConfigRef[]>()
@@ -462,7 +462,10 @@ export class PackageVersionBuilder implements IPackageVersionBuilder {
462462
return []
463463
}
464464

465-
const referencesCache: BuildConfigRef[] = Object.values(versionReferences.packages ?? {}).filter(pack => !pack.deletedAt).map(pack => ({ refId: pack.refId, version: pack.version }))
465+
const referencesCache: BuildConfigRef[] = Object.values(versionReferences.packages ?? {}).filter(pack => !pack.deletedAt).map(pack => ({
466+
refId: pack.refId,
467+
version: pack.version,
468+
}))
466469
this.referencesCache.set(compositeKey, referencesCache)
467470

468471
return referencesCache

src/components/compare/compare.ts

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,17 @@
1414
* limitations under the License.
1515
*/
1616

17-
import {
18-
BuildConfigRef,
19-
CompareContext,
20-
DiffTypeDto,
21-
VersionParams,
22-
VersionsComparison,
23-
VersionsComparisonDto,
24-
} from '../../types'
17+
import { BuildConfigRef, CompareContext, VersionParams, VersionsComparison } from '../../types'
2518
import { compareVersionsOperations } from './compare.operations'
2619
import { getSplittedVersionKey } from '../../utils'
27-
import { toVersionsComparisonDto } from '../../utils/transformToDto'
28-
import { MESSAGE_SEVERITY } from '../../consts'
2920
import { asyncDebugPerformance, DebugPerformanceContext } from '../../utils/logs'
3021

3122
export async function compareVersions(
3223
prev: VersionParams,
3324
curr: VersionParams,
3425
ctx: CompareContext,
3526
debugCtx?: DebugPerformanceContext,
36-
): Promise<VersionsComparisonDto<DiffTypeDto>[]> {
27+
): Promise<VersionsComparison[]> {
3728
let comparisons: VersionsComparison[] = []
3829
await asyncDebugPerformance('[CompareVersions]', async (versionsDebugContext) => {
3930
comparisons = await compareVersionsReferences(prev, curr, ctx)
@@ -44,14 +35,7 @@ export async function compareVersions(
4435
))
4536
}, debugCtx, prev ? [prev[1], prev[0]] : ['empty previous id', 'empty previous version'])
4637

47-
const logError = (message: string): void => {
48-
ctx.notifications.push({
49-
severity: MESSAGE_SEVERITY.Error,
50-
message: message,
51-
})
52-
}
53-
54-
return comparisons.map(comparison => toVersionsComparisonDto(comparison, logError))
38+
return comparisons
5539
}
5640

5741
export async function compareVersionsReferences(

src/components/package.ts

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
import JSZip from 'jszip'
1818
import { version } from '../../package.json'
1919

20-
import type {
20+
import {
2121
ApiOperation,
2222
BuilderContext,
23-
BuildResult,
23+
BuildResultDto,
2424
PackageComparison,
2525
PackageComparisonOperations,
2626
PackageComparisons,
@@ -29,11 +29,12 @@ import type {
2929
PackageNotifications,
3030
PackageOperation,
3131
PackageOperations,
32-
VersionDocument,
32+
VersionDocument, VersionsComparisonDto, BuildResult,
3333
} from '../types'
3434
import { unknownApiBuilder } from '../apitypes'
35-
import { PACKAGE } from '../consts'
35+
import { MESSAGE_SEVERITY, PACKAGE } from '../consts'
3636
import { takeIf, toPackageDocument } from '../utils'
37+
import { toVersionsComparisonDto } from '../utils/transformToDto'
3738

3839
export interface ZipTool {
3940
// todo method should only accept Blob content, transformation is not a responsibility of this method
@@ -48,30 +49,41 @@ export const createVersionPackage = async (
4849
ctx: BuilderContext,
4950
options?: JSZip.JSZipGeneratorOptions,
5051
): Promise<any> => {
51-
await createInfoFile(zip, buildResult.config)
52+
const logError = (message: string): void => {
53+
ctx.notifications.push({
54+
severity: MESSAGE_SEVERITY.Error,
55+
message: message,
56+
})
57+
}
58+
const transformToDtoBuildResult: BuildResultDto = {
59+
...buildResult,
60+
comparisons: buildResult.comparisons.map(comparison => toVersionsComparisonDto(comparison, logError)) as VersionsComparisonDto[],
61+
}
62+
63+
await createInfoFile(zip, transformToDtoBuildResult.config)
5264

53-
const documents = buildResult.merged ? [buildResult.merged] : [...buildResult.documents.values()]
65+
const documents = transformToDtoBuildResult.merged ? [transformToDtoBuildResult.merged] : [...transformToDtoBuildResult.documents.values()]
5466

5567
createDocumentsFile(zip, documents)
5668
await createDocumentDataFiles(zip, documents, ctx)
5769

58-
createOperationsFile(zip, buildResult.operations)
70+
createOperationsFile(zip, transformToDtoBuildResult.operations)
5971
const operationsDir = zip.folder(PACKAGE.OPERATIONS_DIR_NAME)!
60-
for (const { data, operationId } of buildResult.operations.values()) {
72+
for (const { data, operationId } of transformToDtoBuildResult.operations.values()) {
6173
createOperationDataFile(operationsDir, operationId, data)
6274
}
6375

64-
if (buildResult.comparisons.length) {
65-
const comparisons: PackageComparison[] = buildResult.comparisons.map(({ data, ...rest }) => rest)
76+
if (transformToDtoBuildResult.comparisons.length) {
77+
const comparisons: PackageComparison[] = transformToDtoBuildResult.comparisons.map(({ data, ...rest }) => rest)
6678
createComparisonsFile(zip, { comparisons })
6779
const comparisonsDir = zip.folder(PACKAGE.COMPARISONS_DIR_NAME)
6880

69-
for (const comparison of buildResult.comparisons) {
81+
for (const comparison of transformToDtoBuildResult.comparisons) {
7082
if (!comparison.comparisonFileId || !comparison.data) { continue }
7183
createComparisonDataFile(comparisonsDir!, comparison.comparisonFileId, { operations: comparison.data })
7284
}
7385
}
74-
createNotificationsFile(zip, { notifications: buildResult.notifications })
86+
createNotificationsFile(zip, { notifications: transformToDtoBuildResult.notifications })
7587

7688
return await zip.buildResult(options)
7789
}

src/types/internal/apiBuilder.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export type TemplateResolver = (
6767
) => Promise<string>
6868

6969
export interface CompareOperationsPairContext {
70-
notifications: NotificationMessage[],
70+
notifications: NotificationMessage[]
7171
versionDeprecatedResolver: VersionDeprecatedResolver
7272
previousVersion: VersionId
7373
currentVersion: VersionId

src/types/internal/builder.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
* limitations under the License.
1515
*/
1616

17-
import { BuildConfig, BuilderResolvers, DiffTypeDto, FileId, PackageId, ResolvedVersion, VersionId } from '../external'
18-
import { VersionsComparisonDto } from './compare'
17+
import { BuildConfig, BuilderResolvers, FileId, PackageId, ResolvedVersion, VersionId } from '../external'
18+
import { VersionsComparison, VersionsComparisonDto } from './compare'
1919
import { PackageConfig } from '../package/config'
2020
import { NotificationMessage } from '../package/notifications'
2121
import { VersionDocument } from './documents'
@@ -27,9 +27,18 @@ export type VersionCache = ResolvedVersion & {
2727
version: VersionId
2828
}
2929

30+
export interface BuildResultDto {
31+
config: PackageConfig
32+
comparisons: VersionsComparisonDto[]
33+
notifications: NotificationMessage[]
34+
documents: Map<string, VersionDocument>
35+
operations: Map<string, ApiOperation>
36+
merged?: VersionDocument
37+
}
38+
3039
export interface BuildResult {
3140
config: PackageConfig
32-
comparisons: VersionsComparisonDto<DiffTypeDto>[]
41+
comparisons: VersionsComparison[]
3342
notifications: NotificationMessage[]
3443
documents: Map<string, VersionDocument>
3544
operations: Map<string, ApiOperation>

src/utils/transformToDto.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,6 @@ export function convertDtoFieldOperationTypes<
169169
override,
170170
}: OptionDiffReplacer = { origin: SEMI_BREAKING_CHANGE_TYPE, override: risky }): OperationType<J>[] {
171171
return operationTypes?.map((type) => {
172-
// if(!type.changesSummary || !type.changesSummary ) return type
173172
return {
174173
...type,
175174
changesSummary: replacePropertyInChangesSummary<T, J>(type.changesSummary, {

0 commit comments

Comments
 (0)