diff --git a/package-lock.json b/package-lock.json index 6514dc4..927bbf4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "soap-next", - "version": "1.1.0", + "version": "1.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "soap-next", - "version": "1.1.0", + "version": "1.1.1", "license": "MIT", "dependencies": { "axios": "^0.27.2", - "wsdl-next": "^1.0.5" + "wsdl-next": "^1.0.7" }, "devDependencies": { "@types/jest": "^27.4.1", @@ -6437,9 +6437,9 @@ } }, "node_modules/wsdl-next": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/wsdl-next/-/wsdl-next-1.0.5.tgz", - "integrity": "sha512-Gw0j0N9JIhJAJ+s7n42GhYOIyr/QrVyKF/aO7CR3E0HVA5knsU3Wub+kPv4GKQ6ZQOM3RKBKEeNUyw8IqXXMQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/wsdl-next/-/wsdl-next-1.0.7.tgz", + "integrity": "sha512-Ao7/lyRPx6t4okhSS49ibqNKKw7PwNt7nksk4R49XCNYwMwlPttNneijdeTWTLRDriq6eAbVN2D1qk1TikuQig==", "dependencies": { "axios": "^0.27.2", "xmldoc": "^1.1.2" @@ -11349,9 +11349,9 @@ "requires": {} }, "wsdl-next": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/wsdl-next/-/wsdl-next-1.0.5.tgz", - "integrity": "sha512-Gw0j0N9JIhJAJ+s7n42GhYOIyr/QrVyKF/aO7CR3E0HVA5knsU3Wub+kPv4GKQ6ZQOM3RKBKEeNUyw8IqXXMQA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/wsdl-next/-/wsdl-next-1.0.7.tgz", + "integrity": "sha512-Ao7/lyRPx6t4okhSS49ibqNKKw7PwNt7nksk4R49XCNYwMwlPttNneijdeTWTLRDriq6eAbVN2D1qk1TikuQig==", "requires": { "axios": "^0.27.2", "xmldoc": "^1.1.2" diff --git a/package.json b/package.json index 62a6ccf..bd6c918 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "soap-next", - "version": "1.1.1", + "version": "1.1.2", "description": "Simple soap client", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -34,7 +34,7 @@ }, "dependencies": { "axios": "^0.27.2", - "wsdl-next": "^1.0.5" + "wsdl-next": "^1.0.7" }, "keywords": [ "SOAP", diff --git a/src/SoapRequest.ts b/src/SoapRequest.ts index 9366c33..a2182a0 100644 --- a/src/SoapRequest.ts +++ b/src/SoapRequest.ts @@ -1,5 +1,7 @@ -import axios, { AxiosRequestHeaders } from 'axios'; +import axios, { AxiosRequestHeaders, AxiosRequestConfig } from 'axios'; import { WsdlNext } from 'wsdl-next'; +import { Agent } from 'http'; +import { Agent as AgentHttps } from 'https'; import { SoapBodyAttributes, SoapBodyParams, SoapParams, } from './SoapTypes'; @@ -11,6 +13,8 @@ export default class SoapRequest { private wsdl: WsdlNext; + private readonly requestAgent: Agent | AgentHttps; + constructor(url: string, params: SoapParams, wsdl: WsdlNext) { this.url = url; this.clientParams = params; @@ -22,6 +26,7 @@ export default class SoapRequest { }; } this.wsdl = wsdl; + this.requestAgent = wsdl.requestAgent; } async getRequestHeadParams() { @@ -164,21 +169,30 @@ export default class SoapRequest { } async request(body: string) { - const url = this.url.split('?')[0]; - const result = await axios({ - url, + const urlWithoutParams = this.url.split('?')[0]; + + const axiosConfig: AxiosRequestConfig = { + url: urlWithoutParams, method: 'POST', headers: this.clientParams.httpHeaders as AxiosRequestHeaders, + responseType: 'text', data: body, - }); + }; - return result; + if (this.requestAgent instanceof Agent) { + axiosConfig.httpAgent = this.requestAgent; + } else { + axiosConfig.httpsAgent = this.requestAgent; + } + + const result = await axios(axiosConfig); + + return result.data as string; } async call(method: string, bodyParams: SoapBodyParams, attributes: SoapBodyAttributes) { const requestXml = await this.getRequestXml(method, bodyParams, attributes); const result = await this.request(requestXml); - - return result.data; + return result; } }