Skip to content

Commit acb7361

Browse files
committed
fix: avoid finalizing zip early
1 parent bf6a416 commit acb7361

File tree

2 files changed

+28
-18
lines changed

2 files changed

+28
-18
lines changed

packages/core/src/amazonq/util/zipProjectUtil.ts

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,13 @@ interface ZipProjectCustomizations {
2323
computeSideEffects?: (file: CollectFilesResultItem) => Promise<void> | void
2424
}
2525

26-
export async function zipProject(
26+
export async function addToZip(
2727
repoRootPaths: string[],
2828
workspaceFolders: CurrentWsFolders,
2929
collectFilesOptions: CollectFilesOptions,
30-
customizations?: ZipProjectCustomizations,
31-
options?: ZipProjectOptions
32-
): Promise<ZippedWorkspaceResult> {
33-
const zip = options?.zip ?? new ZipStream()
30+
zip: ZipStream,
31+
customizations?: ZipProjectCustomizations
32+
) {
3433
const files = await collectFiles(repoRootPaths, workspaceFolders, collectFilesOptions)
3534
const zippedFiles = new Set()
3635
let totalBytes: number = 0
@@ -74,11 +73,28 @@ export async function zipProject(
7473
}
7574
}
7675

76+
return { zip, totalBytesAdded: totalBytes }
77+
}
78+
79+
export async function zipProject(
80+
repoRootPaths: string[],
81+
workspaceFolders: CurrentWsFolders,
82+
collectFilesOptions: CollectFilesOptions,
83+
customizations?: ZipProjectCustomizations,
84+
options?: ZipProjectOptions
85+
): Promise<ZippedWorkspaceResult> {
86+
const { zip, totalBytesAdded } = await addToZip(
87+
repoRootPaths,
88+
workspaceFolders,
89+
collectFilesOptions,
90+
options?.zip ?? new ZipStream(),
91+
customizations
92+
)
7793
const zipResult = await zip.finalize()
7894
const zipFileBuffer = zipResult.streamBuffer.getContents() || Buffer.from('')
7995
return {
8096
zipFileBuffer,
8197
zipFileChecksum: zipResult.hash,
82-
totalFileBytes: totalBytes,
98+
totalFileBytes: totalBytesAdded,
8399
}
84100
}

packages/core/src/codewhisperer/util/zipUtil.ts

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import { ProjectZipError } from '../../amazonqTest/error'
3030
import { removeAnsi } from '../../shared/utilities/textUtilities'
3131
import { normalize } from '../../shared/utilities/pathUtils'
3232
import { ZipStream } from '../../shared/utilities/zipStream'
33-
import { zipProject } from '../../amazonq/util/zipProjectUtil'
33+
import { addToZip } from '../../amazonq/util/zipProjectUtil'
3434

3535
export interface ZipMetadata {
3636
rootDir: string
@@ -453,17 +453,11 @@ export class ZipUtil {
453453
this._totalSize += file.fileSizeBytes
454454
}
455455

456-
await zipProject(
457-
projectPaths,
458-
workspaceFolders,
459-
collectFilesOptions,
460-
{
461-
isExcluded,
462-
checkForError,
463-
computeSideEffects,
464-
},
465-
{ zip }
466-
)
456+
await addToZip(projectPaths, workspaceFolders, collectFilesOptions, zip, {
457+
isExcluded,
458+
checkForError,
459+
computeSideEffects,
460+
})
467461
}
468462

469463
protected processOtherFiles(zip: ZipStream, languageCount: Map<CodewhispererLanguage, number>) {

0 commit comments

Comments
 (0)