1717import JSZip from 'jszip'
1818import { 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'
3434import { unknownApiBuilder } from '../apitypes'
35- import { PACKAGE } from '../consts'
35+ import { MESSAGE_SEVERITY , PACKAGE } from '../consts'
3636import { takeIf , toPackageDocument } from '../utils'
37+ import { toVersionsComparisonDto } from '../utils/transformToDto'
3738
3839export 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}
0 commit comments