Skip to content

Commit 73776f0

Browse files
authored
Merge pull request #92 from cloudgraphdev/fix/iam-role-name
fix: Optional chaining for last used details
2 parents d94fdaa + 751a86b commit 73776f0

1 file changed

Lines changed: 27 additions & 26 deletions

File tree

src/services/iamRole/data.ts

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import isEmpty from 'lodash/isEmpty'
55
import { AWSError } from 'aws-sdk/lib/error'
66

77
import IAM, {
8-
AttachedPolicy, GetRoleResponse,
8+
AttachedPolicy,
9+
GetRoleResponse,
910
ListAttachedRolePoliciesResponse,
1011
ListRolePoliciesResponse,
1112
ListRolesResponse,
@@ -44,33 +45,30 @@ export interface RawAwsIamRole extends Omit<Role, 'Tags'> {
4445
}
4546

4647
const roleByRoleName = async (
47-
iam: IAM,
48-
{ RoleName }: Role
49-
): Promise<{RoleName: string; Role: Role}> =>
50-
new Promise(resolve => {
51-
iam.getRole(
52-
{ RoleName },
53-
(err: AWSError, data: GetRoleResponse) => {
54-
if (err) {
55-
errorLog.generateAwsErrorLog({
56-
err,
57-
functionName: 'iam:getRole',
58-
})
59-
}
48+
iam: IAM,
49+
{ RoleName }: Role
50+
): Promise<{ RoleName: string; Role: Role }> =>
51+
new Promise(resolve => {
52+
iam.getRole({ RoleName }, (err: AWSError, data: GetRoleResponse) => {
53+
if (err) {
54+
errorLog.generateAwsErrorLog({
55+
err,
56+
functionName: 'iam:getRole',
57+
})
58+
}
6059

61-
if (!isEmpty(data)) {
62-
const {Role} = data
60+
if (!isEmpty(data)) {
61+
const { Role } = data
6362

64-
resolve({
65-
RoleName,
66-
Role,
67-
})
68-
}
63+
resolve({
64+
RoleName,
65+
Role,
66+
})
67+
}
6968

70-
resolve(null)
71-
}
72-
)
69+
resolve(null)
7370
})
71+
})
7472

7573
const tagsByRoleName = async (
7674
iam: IAM,
@@ -165,7 +163,8 @@ export const listIamRoles = async (
165163
const policiesByRoleNamePromises = []
166164
const tagsByRoleNamePromises = []
167165
const managedPoliciesByRoleNamePromises = []
168-
const roleByRoleNamePromises: Promise<{RoleName: string; Role: Role}>[] = []
166+
const roleByRoleNamePromises: Promise<{ RoleName: string; Role: Role }>[] =
167+
[]
169168

170169
iam.listRoles(
171170
{ Marker: marker },
@@ -205,7 +204,9 @@ export const listIamRoles = async (
205204
),
206205
...role,
207206
region: globalRegionName,
208-
RoleLastUsed: detailedRoles?.find(r => r.RoleName === RoleName)?.Role.RoleLastUsed,
207+
RoleLastUsed: detailedRoles?.find(
208+
r => r?.RoleName === RoleName
209+
)?.Role.RoleLastUsed,
209210
Policies:
210211
policies
211212
?.filter(p => p?.RoleName === RoleName)

0 commit comments

Comments
 (0)