@@ -106,29 +106,31 @@ export const resolveAwsSdkSigV4Config = <T>(
106
106
) : T & AwsSdkSigV4AuthResolvedConfig => {
107
107
let isUserSupplied = false ;
108
108
// Normalize credentials
109
- let normalizedCreds : AwsCredentialIdentityProvider | undefined ;
109
+ let credentialsProvider : AwsCredentialIdentityProvider | undefined ;
110
110
if ( config . credentials ) {
111
111
isUserSupplied = true ;
112
- normalizedCreds = memoizeIdentityProvider ( config . credentials , isIdentityExpired , doesIdentityRequireRefresh ) ;
112
+ credentialsProvider = memoizeIdentityProvider ( config . credentials , isIdentityExpired , doesIdentityRequireRefresh ) ;
113
113
}
114
- if ( ! normalizedCreds ) {
114
+ if ( ! credentialsProvider ) {
115
115
// credentialDefaultProvider should always be populated, but in case
116
116
// it isn't, set a default identity provider that throws an error
117
117
if ( config . credentialDefaultProvider ) {
118
- normalizedCreds = normalizeProvider (
118
+ credentialsProvider = normalizeProvider (
119
119
config . credentialDefaultProvider (
120
120
Object . assign ( { } , config as any , {
121
121
parentClientConfig : config ,
122
122
} )
123
123
)
124
124
) ;
125
125
} else {
126
- normalizedCreds = async ( ) => {
126
+ credentialsProvider = async ( ) => {
127
127
throw new Error ( "`credentials` is missing" ) ;
128
128
} ;
129
129
}
130
130
}
131
131
132
+ const boundCredentialsProvider = async ( ) => credentialsProvider ! ( { callerClientConfig : config } ) ;
133
+
132
134
// Populate sigv4 arguments
133
135
const {
134
136
// Default for signingEscapePath
@@ -170,7 +172,7 @@ export const resolveAwsSdkSigV4Config = <T>(
170
172
171
173
const params : SignatureV4Init & SignatureV4CryptoInit = {
172
174
...config ,
173
- credentials : normalizedCreds ! ,
175
+ credentials : boundCredentialsProvider ,
174
176
region : config . signingRegion ,
175
177
service : config . signingName ,
176
178
sha256,
@@ -206,7 +208,7 @@ export const resolveAwsSdkSigV4Config = <T>(
206
208
207
209
const params : SignatureV4Init & SignatureV4CryptoInit = {
208
210
...config ,
209
- credentials : normalizedCreds ! ,
211
+ credentials : boundCredentialsProvider ,
210
212
region : config . signingRegion ,
211
213
service : config . signingName ,
212
214
sha256,
@@ -224,10 +226,10 @@ export const resolveAwsSdkSigV4Config = <T>(
224
226
signingEscapePath,
225
227
credentials : isUserSupplied
226
228
? async ( ) =>
227
- normalizedCreds ! ( ) . then ( ( creds : AttributedAwsCredentialIdentity ) =>
229
+ boundCredentialsProvider ! ( ) . then ( ( creds : AttributedAwsCredentialIdentity ) =>
228
230
setCredentialFeature ( creds , "CREDENTIALS_CODE" , "e" )
229
231
)
230
- : normalizedCreds ! ,
232
+ : boundCredentialsProvider ! ,
231
233
signer,
232
234
} ;
233
235
} ;
0 commit comments