@@ -22,20 +22,28 @@ class ScrapingClient {
22
22
* @param {object } [parameters]
23
23
* @param {boolean } [parameters.browser]
24
24
* @param {string } [parameters.cookies]
25
+ * @param {object } [parameters.headers]
25
26
* @param {string } [parameters.js_snippet]
26
27
* @param {string } [parameters.proxy_type] 'datacenter' or 'residential'
27
28
* @param {string } [parameters.proxy_country]
28
29
* @param {string } [parameters.wait_for_selector]
29
30
* @param {boolean } [parameters.return_text]
30
31
*/
31
32
async call ( url , parameters = { } ) {
33
+ const transformedHeaders = parameters . headers && typeof parameters . headers === 'object'
34
+ ? this . _transformCustomHeaders ( parameters . headers )
35
+ : { } ;
36
+
37
+ const defaultHeaders = {
38
+ 'Content-Type' : 'application/json' ,
39
+ 'x-api-key' : this . apiKey ,
40
+ } ;
41
+
42
+ const headers = Object . assign ( defaultHeaders , transformedHeaders ) ;
32
43
const response = await this . httpClient . call ( {
33
44
url : `${ constants . baseUrl } /v1/general` ,
34
45
method : 'post' ,
35
- headers : {
36
- 'Content-Type' : 'application/json' ,
37
- 'x-api-key' : this . apiKey ,
38
- } ,
46
+ headers,
39
47
data : {
40
48
url,
41
49
...( typeof parameters . browser !== 'undefined' && { browser : ! ! parameters . browser } ) ,
@@ -50,6 +58,16 @@ class ScrapingClient {
50
58
51
59
return response . data ;
52
60
}
61
+
62
+ _transformCustomHeaders ( headers = { } ) {
63
+ const returnHeaders = { } ;
64
+
65
+ Object . keys ( headers ) . forEach ( ( key ) => {
66
+ returnHeaders [ `ant-${ key } ` ] = headers [ key ] ;
67
+ } ) ;
68
+
69
+ return returnHeaders ;
70
+ }
53
71
}
54
72
55
73
module . exports = ScrapingClient ;
0 commit comments