Skip to content

Commit 5a43ca9

Browse files
author
Hamed Soleimani
committed
change logic to use explicit file names and extensions
1 parent f655fe3 commit 5a43ca9

File tree

3 files changed

+26
-14
lines changed

3 files changed

+26
-14
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
22
"type": "Bug Fix",
3-
"description": "Include mvn and gradle files in repo archives"
3+
"description": "Amazon Q can update mvn and gradle build files"
44
}

packages/core/src/shared/filetypes.ts

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ export const codefileExtensions = new Set([
173173
'.cljs',
174174
'.cls',
175175
'.cmake',
176+
'.cmd',
176177
'.cob',
177178
'.cobra',
178179
'.coffee',
@@ -274,6 +275,7 @@ export const codefileExtensions = new Set([
274275
'.pp',
275276
'.pro',
276277
'.prolog',
278+
'.properties',
277279
'.ps1',
278280
'.psd1',
279281
'.psm1',
@@ -351,21 +353,10 @@ export const codefileExtensions = new Set([
351353
])
352354

353355
// Code file names without an extension
354-
export const codefileNames = new Set(['Dockerfile', 'Dockerfile.build'])
355-
356-
// To match gradlew, .mvn/*, etc
357-
export const wellKnownSubnames = new Set(['gradle', 'mvn'])
356+
export const codefileNames = new Set(['Dockerfile', 'Dockerfile.build', 'gradlew', 'mvnw'])
358357

359358
/** Returns true if `filename` is a code file. */
360359
export function isCodeFile(filename: string): boolean {
361360
const ext = path.extname(filename).toLowerCase()
362-
if (codefileExtensions.has(ext) || codefileNames.has(path.basename(filename))) {
363-
return true
364-
}
365-
for (const subname of wellKnownSubnames) {
366-
if (filename.includes(subname)) {
367-
return true
368-
}
369-
}
370-
return false
361+
return codefileExtensions.has(ext) || codefileNames.has(path.basename(filename))
371362
}

packages/core/src/test/shared/filetypes.test.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import * as workspaceUtils from '../../shared/utilities/workspaceUtils'
1313
import { toArrayAsync } from '../../shared/utilities/collectionUtils'
1414
import { waitUntil } from '../../shared/utilities/timeoutUtils'
1515
import { mapMetadata } from '../../shared/telemetry/telemetryLogger'
16+
import { isCodeFile } from '../../shared/filetypes'
1617

1718
async function getMetrics(n: number, metricName: string, timeout = 1000) {
1819
return await waitUntil(
@@ -148,3 +149,23 @@ describe('file_editAwsFile telemetry', function () {
148149
// assert.strictEqual(r?.length, 1, 'emitted file_editAwsFile too many times')
149150
})
150151
})
152+
153+
describe('isCodeFile', () => {
154+
it('returns true for code files', function () {
155+
const codeFiles = [
156+
'test.py',
157+
'test.js',
158+
'Dockerfile',
159+
'gradlew',
160+
'mvnw',
161+
'build.gradle',
162+
'gradle/wrapper/gradle-wrapper.properties',
163+
]
164+
codeFiles.forEach((codeFilePath) => assert.strictEqual(isCodeFile(codeFilePath), true))
165+
})
166+
167+
it('returns false for other files', function () {
168+
const codeFiles = ['compiled.exe', 'random_file']
169+
codeFiles.forEach((filePath) => assert.strictEqual(isCodeFile(filePath), false))
170+
})
171+
})

0 commit comments

Comments
 (0)