6
6
HttpRequest ,
7
7
HeaderBag ,
8
8
} from '@aws-sdk/types' ;
9
- import buildURL from 'axios/unsafe/helpers/buildURL.js' ;
10
- import transformData from 'axios/unsafe/core/transformData.js' ;
11
- import buildFullPath from 'axios/unsafe/core/buildFullPath.js' ;
12
9
13
10
import type { Alpha } from '../alpha' ;
14
11
import type { AlphaInterceptor , AlphaOptions } from '../types' ;
@@ -35,7 +32,11 @@ const unsignableHeaders = new Set([
35
32
'range' ,
36
33
] ) ;
37
34
38
- const combineParams = ( url : string , { params, paramsSerializer } : AlphaOptions ) : HttpRequest [ 'query' ] => {
35
+ const combineParams = async ( url : string , { params, paramsSerializer } : AlphaOptions ) : Promise < HttpRequest [ 'query' ] > => {
36
+ // buildURL is a ESM module, so we need to import it dynamically since
37
+ // we are in a CommonJS environment
38
+ const { default : buildURL } = await import ( 'axios/unsafe/helpers/buildURL.js' ) ;
39
+
39
40
const fullUrl : string = buildURL ( url , params , paramsSerializer ) ;
40
41
const { query } = parseUrl ( fullUrl ) ;
41
42
return query ;
@@ -54,6 +55,12 @@ const awsV4Signature: AlphaInterceptor = async (config) => {
54
55
return config ;
55
56
}
56
57
58
+ // transformData and buildFullPath are ESM modules, so we need to import it
59
+ // dynamically since we are in a CommonJS environment
60
+ const { default : transformData } = await import ( 'axios/unsafe/core/transformData.js' ) ;
61
+ const { default : buildFullPath } = await import ( 'axios/unsafe/core/buildFullPath.js' ) ;
62
+
63
+
57
64
let fullPath : string = buildFullPath ( config . baseURL , config . url ) ;
58
65
if ( isLambdaUrl ( fullPath ) ) {
59
66
const lambdaUrl = parseLambdaUrl ( fullPath ) as LambdaUrl ;
@@ -86,7 +93,7 @@ const awsV4Signature: AlphaInterceptor = async (config) => {
86
93
path,
87
94
port : port ? Number . parseInt ( port ) : undefined ,
88
95
headers : getHeaders ( hostname , config ) ,
89
- query : combineParams ( fullPath , config ) ,
96
+ query : await combineParams ( fullPath , config ) ,
90
97
body : transformData . call ( config , config . data , config . headers , config . transformRequest ) ,
91
98
} ;
92
99
0 commit comments