@@ -189,59 +189,36 @@ export class SignatureV4
189
189
return request ;
190
190
}
191
191
192
- public sign (
192
+ public async sign (
193
193
stringToSign : string ,
194
194
options ?: SigningArguments
195
195
) : Promise < string > ;
196
- public sign (
196
+ public async sign (
197
+ event : FormattedEvent ,
198
+ options : EventSigningArguments
199
+ ) : Promise < string > ;
200
+ public async sign (
197
201
requestToSign : HttpRequest ,
198
202
options ?: RequestSigningArguments
199
203
) : Promise < HttpRequest > ;
200
- public async sign < T extends string | HttpRequest > (
201
- toSign : T ,
202
- {
203
- signingDate = new Date ( ) ,
204
- ...options
205
- } : RequestSigningArguments | SigningArguments = { }
206
- ) : Promise < T > {
207
- const [ region , credentials ] = await Promise . all ( [
208
- this . regionProvider ( ) ,
209
- this . credentialProvider ( )
210
- ] ) ;
211
-
204
+ public async sign ( toSign : any , options : any ) : Promise < any > {
212
205
if ( typeof toSign === "string" ) {
213
- return this . signString (
214
- toSign ,
215
- signingDate ,
216
- region ,
217
- credentials
218
- ) as Promise < T > ;
206
+ return this . signString ( toSign , options ) ;
207
+ } else if ( toSign . headers && toSign . payload ) {
208
+ return this . signEvent ( toSign , options ) ;
219
209
} else {
220
- const {
221
- unsignableHeaders,
222
- signableHeaders
223
- } = options as RequestSigningArguments ;
224
-
225
- return this . signRequest (
226
- toSign as HttpRequest ,
227
- signingDate ,
228
- region ,
229
- credentials ,
230
- unsignableHeaders ,
231
- signableHeaders
232
- ) as Promise < T > ;
210
+ return this . signRequest ( toSign , options ) ;
233
211
}
234
212
}
235
213
236
- public async signEvent (
214
+ private async signEvent (
237
215
{ headers, payload } : FormattedEvent ,
238
- options : EventSigningArguments
216
+ { signingDate = new Date ( ) , priorSignature } : EventSigningArguments
239
217
) : Promise < string > {
240
- const [ region , credentials ] = await Promise . all ( [
218
+ const [ region ] = await Promise . all ( [
241
219
this . regionProvider ( ) ,
242
220
this . credentialProvider ( )
243
221
] ) ;
244
- const { signingDate = new Date ( ) , priorSignature } = options ;
245
222
const { shortDate, longDate } = formatDate ( signingDate ) ;
246
223
const scope = createScope ( shortDate , region , this . service ) ;
247
224
const hashedPayload = await getPayloadHash (
@@ -259,15 +236,17 @@ export class SignatureV4
259
236
hashedHeaders ,
260
237
hashedPayload
261
238
] . join ( "\n" ) ;
262
- return this . signString ( stringToSign , signingDate , region , credentials ) ;
239
+ return this . signString ( stringToSign , { signingDate } ) ;
263
240
}
264
241
265
242
private async signString (
266
243
stringToSign : string ,
267
- signingDate : DateInput ,
268
- region : string ,
269
- credentials : Credentials
244
+ { signingDate = new Date ( ) } : SigningArguments = { }
270
245
) : Promise < string > {
246
+ const [ region , credentials ] = await Promise . all ( [
247
+ this . regionProvider ( ) ,
248
+ this . credentialProvider ( )
249
+ ] ) ;
271
250
const { shortDate } = formatDate ( signingDate ) ;
272
251
273
252
const hash = new this . sha256 (
@@ -278,14 +257,18 @@ export class SignatureV4
278
257
}
279
258
280
259
private async signRequest (
281
- originalRequest : HttpRequest ,
282
- signingDate : DateInput ,
283
- region : string ,
284
- credentials : Credentials ,
285
- unsignableHeaders ?: Set < string > ,
286
- signableHeaders ?: Set < string >
260
+ requestToSign : HttpRequest ,
261
+ {
262
+ signingDate = new Date ( ) ,
263
+ signableHeaders ,
264
+ unsignableHeaders
265
+ } : RequestSigningArguments = { }
287
266
) : Promise < HttpRequest > {
288
- const request = prepareRequest ( originalRequest ) ;
267
+ const [ region , credentials ] = await Promise . all ( [
268
+ this . regionProvider ( ) ,
269
+ this . credentialProvider ( )
270
+ ] ) ;
271
+ const request = prepareRequest ( requestToSign ) ;
289
272
const { longDate, shortDate } = formatDate ( signingDate ) ;
290
273
const scope = createScope ( shortDate , region , this . service ) ;
291
274
0 commit comments