Skip to content

Commit 4440265

Browse files
authored
Insert credentials at the first occurrence of a security credential key (#701)
1 parent fb18aa6 commit 4440265

File tree

4 files changed

+98
-4
lines changed

4 files changed

+98
-4
lines changed

.changeset/red-fans-cheer.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"aws-sdk-js-codemod": patch
3+
---
4+
5+
Insert credentials at the first occurrence of a security credential key
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import AWS from "aws-sdk";
2+
3+
const credsAfter = new AWS.Config({
4+
logger: console,
5+
region: "us-east-1",
6+
accessKeyId: "KEY",
7+
secretAccessKey: "SECRET"
8+
});
9+
10+
const credsBefore = new AWS.Config({
11+
accessKeyId: "KEY",
12+
secretAccessKey: "SECRET",
13+
logger: console,
14+
region: "us-east-1",
15+
});
16+
17+
const credsInBetween = new AWS.Config({
18+
logger: console,
19+
accessKeyId: "KEY",
20+
secretAccessKey: "SECRET",
21+
region: "us-east-1",
22+
});
23+
24+
const credsDispersedBefore = new AWS.Config({
25+
accessKeyId: "KEY",
26+
logger: console,
27+
secretAccessKey: "SECRET",
28+
region: "us-east-1"
29+
});
30+
31+
const credsDispersedAfter = new AWS.Config({
32+
logger: console,
33+
accessKeyId: "KEY",
34+
region: "us-east-1",
35+
secretAccessKey: "SECRET",
36+
});
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
const credsAfter = {
2+
logger: console,
3+
region: "us-east-1",
4+
5+
credentials: {
6+
accessKeyId: "KEY",
7+
secretAccessKey: "SECRET"
8+
}
9+
};
10+
11+
const credsBefore = {
12+
credentials: {
13+
accessKeyId: "KEY",
14+
secretAccessKey: "SECRET"
15+
},
16+
17+
logger: console,
18+
region: "us-east-1"
19+
};
20+
21+
const credsInBetween = {
22+
logger: console,
23+
24+
credentials: {
25+
accessKeyId: "KEY",
26+
secretAccessKey: "SECRET"
27+
},
28+
29+
region: "us-east-1"
30+
};
31+
32+
const credsDispersedBefore = {
33+
credentials: {
34+
accessKeyId: "KEY",
35+
secretAccessKey: "SECRET"
36+
},
37+
38+
logger: console,
39+
region: "us-east-1"
40+
};
41+
42+
const credsDispersedAfter = {
43+
logger: console,
44+
45+
credentials: {
46+
accessKeyId: "KEY",
47+
secretAccessKey: "SECRET"
48+
},
49+
50+
region: "us-east-1"
51+
};

src/transforms/v2-to-v3/client-instances/getObjectWithUpdatedAwsConfigKeys.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,12 @@ export const getObjectWithUpdatedAwsConfigKeys = (
6767

6868
if (securityCredentialKeys.includes(propertyKey.name)) {
6969
credentials.properties.push(property);
70+
71+
// Push credentials key only once.
72+
if (credentials.properties.length === 1) {
73+
return j.objectProperty(j.identifier("credentials"), credentials);
74+
}
75+
7076
return undefined;
7177
}
7278

@@ -107,10 +113,6 @@ export const getObjectWithUpdatedAwsConfigKeys = (
107113
})
108114
.filter((property) => property !== undefined);
109115

110-
if (credentials.properties.length > 0) {
111-
updatedProperties.unshift(j.objectProperty(j.identifier("credentials"), credentials));
112-
}
113-
114116
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
115117
// @ts-ignore is Argument is not assignable to parameter
116118
return j.objectExpression(updatedProperties);

0 commit comments

Comments
 (0)