@@ -12,9 +12,27 @@ const createHarHeaders = (request_headers_obj) => {
1212 return headers ;
1313} ;
1414
15- const createHarQueryStrings = ( path ) => {
16- // TODO -> http://www.softwareishard.com/blog/har-12-spec/#queryString
17- return [ ] ;
15+ const createHarQueryStrings = ( query_params ) => {
16+ let res = [ ]
17+
18+ Object . keys ( query_params ) . forEach ( query => {
19+ const query_value = query_params [ query ]
20+ if ( Array . isArray ( query_value ) ) {
21+ query_value . forEach ( val => {
22+ res . push ( {
23+ "name" : query ,
24+ "value" : val
25+ } )
26+ } )
27+ } else {
28+ res . push ( {
29+ "name" : query ,
30+ "value" : query_value
31+ } )
32+ }
33+ } )
34+
35+ return res
1836} ;
1937
2038const getContentType = ( headers ) => {
@@ -90,6 +108,7 @@ export const createRequestHarObject = (
90108 body,
91109 headers,
92110 agent,
111+ query_params
93112 } = proxyToServerRequestOptions ;
94113
95114 return {
@@ -99,7 +118,7 @@ export const createRequestHarObject = (
99118 cookies : [ ] , // TODO: add support for Cookies
100119 headers : requestHarObject . headers || createHarHeaders ( headers ) ,
101120 method : requestHarObject . method || method ,
102- queryString : requestHarObject . queryString || createHarQueryStrings ( path ) ,
121+ queryString : requestHarObject . queryString || createHarQueryStrings ( query_params ) ,
103122 url :
104123 requestHarObject . url || ( agent ?. protocol || "http:" ) + "//" + host + path ,
105124 postData :
@@ -109,25 +128,25 @@ export const createRequestHarObject = (
109128} ;
110129
111130
112- export const createHar = ( requestHeaders , method , protocol , host , path , requestBody , responseStatusCode , response , responseHeaders ) => {
131+ export const createHar = ( requestHeaders , method , protocol , host , path , requestBody , responseStatusCode , response , responseHeaders , requestParams ) => {
113132 return {
114133 "log" : {
115134 "version" : "1.2" ,
116135 "creator" : { } ,
117136 "browser" : { } ,
118137 "pages" : [ ] ,
119- "entries" : [ createHarEntry ( requestHeaders , method , protocol , host , path , requestBody , responseStatusCode , response , responseHeaders ) ] ,
138+ "entries" : [ createHarEntry ( requestHeaders , method , protocol , host , path , requestBody , responseStatusCode , response , responseHeaders , requestParams ) ] ,
120139 "comment" : ""
121140 }
122141 } ;
123142}
124143
125- export const createHarEntry = ( requestHeaders , method , protocol , host , path , requestBody , responseStatusCode , response , responseHeaders ) => {
144+ export const createHarEntry = ( requestHeaders , method , protocol , host , path , requestBody , responseStatusCode , response , responseHeaders , requestParams ) => {
126145 return {
127146 // "pageref": "page_0",
128147 "startedDateTime" : new Date ( ) . toISOString ( ) ,
129148 // "time": 50,
130- "request" : createHarRequest ( requestHeaders , method , protocol , host , path , requestBody ) ,
149+ "request" : createHarRequest ( requestHeaders , method , protocol , host , path , requestBody , requestParams ) ,
131150 "response" : createHarResponse ( responseStatusCode , response , responseHeaders ) ,
132151 "cache" : { } ,
133152 "timings" : { } ,
@@ -137,15 +156,15 @@ export const createHarEntry = (requestHeaders, method, protocol, host, path, req
137156 } ;
138157}
139158
140- export const createHarRequest = ( requestHeaders , method , protocol , host , path , requestBody ) => {
159+ export const createHarRequest = ( requestHeaders , method , protocol , host , path , requestBody , requestParams ) => {
141160 return {
142161 bodySize : - 1 , // TODO: calculate the body size
143162 headersSize : - 1 , // TODO: calculate the header size
144163 httpVersion : "HTTP/1.1" ,
145164 cookies : [ ] , // TODO: add support for Cookies
146165 headers : createHarHeaders ( requestHeaders ) ,
147166 method : method ,
148- queryString : createHarQueryStrings ( path ) ,
167+ queryString : createHarQueryStrings ( requestParams ) ,
149168 url :
150169 protocol + "://" + host + path ,
151170 postData :
0 commit comments