Skip to content

Commit 8b3dcb6

Browse files
committed
fix: move duplicate check to zipStream
1 parent 890238a commit 8b3dcb6

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

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

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,7 @@ export async function prepareRepoData(
9595

9696
let totalBytes = 0
9797
const ignoredExtensionMap = new Map<string, number>()
98-
const addedFilePaths = new Set()
99-
10098
for (const file of files) {
101-
if (addedFilePaths.has(file.zipFilePath)) {
102-
continue
103-
}
104-
addedFilePaths.add(file.zipFilePath)
105-
10699
let fileSize
107100
try {
108101
fileSize = (await fs.stat(file.fileUri)).size

packages/core/src/test/shared/utilities/zipStream.test.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import fs from '../../../shared/fs/fs'
1111
import crypto from 'crypto'
1212
// @ts-ignore
1313
import { BlobWriter } from '@zip.js/zip.js'
14+
import { assertLogsContain } from '../../globalSetup.test'
1415

1516
describe('zipStream', function () {
1617
let tmpDir: string
@@ -67,6 +68,25 @@ describe('zipStream', function () {
6768

6869
assert.strictEqual(result.sizeInBytes, (await fs.stat(zipPath)).size)
6970
})
71+
72+
it('only writes to target paths once', async function () {
73+
const testFilePath = path.join(tmpDir, 'test.txt')
74+
await fs.writeFile(testFilePath, 'foo bar')
75+
const testFilePath2 = path.join(tmpDir, 'test2.txt')
76+
await fs.writeFile(testFilePath2, 'foo bar')
77+
78+
const zipStream = new ZipStream()
79+
zipStream.writeFile(testFilePath, 'file.txt')
80+
zipStream.writeFile(testFilePath2, 'file.txt')
81+
const result = await zipStream.finalize()
82+
83+
const zipBuffer = result.streamBuffer.getContents()
84+
assert.ok(zipBuffer)
85+
const zipEntries = await ZipStream.unzip(zipBuffer)
86+
87+
assert.strictEqual(zipEntries.length, 1)
88+
assertLogsContain('already added', false, 'warn')
89+
})
7090
})
7191

7292
async function verifyResult(result: ZipStreamResult, zipPath: string) {

0 commit comments

Comments
 (0)