@odata2ts/http-client-axios 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.10.0](https://github.com/odata2ts/http-client/compare/@odata2ts/http-client-axios@0.9.0...@odata2ts/http-client-axios@0.10.0) (2023-09-13)
7
+
8
+ ### Code Refactoring
9
+
10
+ * expand additionalHeaders param to internalConfig ([#15](https://github.com/odata2ts/http-client/issues/15)) ([7fe1d73](https://github.com/odata2ts/http-client/commit/7fe1d73a7436f64b84a060bd1dbf9e121ef901ce))
11
+
12
+ ### BREAKING CHANGES
13
+
14
+ * additional headers are now part of the config parameter
15
+
16
+ * fix: don't lose configuration when CSRF token is active
17
+
18
+ * add new option which prevents FetchClient from evaluating response body (not needed for fetching csrf tokens & makes trouble with SAP's mockServer)
19
+
20
+ * fix: add headers for content-type and accept for main methods
21
+
6
22
  # [0.9.0](https://github.com/odata2ts/http-client/compare/@odata2ts/http-client-axios@0.8.1...@odata2ts/http-client-axios@0.9.0) (2023-08-03)
7
23
 
8
24
  ### Code Refactoring
@@ -32,7 +48,9 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
32
48
  ### Features
33
49
 
34
50
  * **axios:** take over axios-odata-client as http-client-axios ([#1](https://github.com/odata2ts/http-client/issues/1)) ([d679f60](https://github.com/odata2ts/http-client/commit/d679f60087adfdefa00f2a4860bed77ca9b15654))
51
+
35
52
  * switch to http-client-api ([52d1b86](https://github.com/odata2ts/http-client/commit/52d1b868ee82dbaf45486da6b22fdcf4c773dfb8))
53
+
36
54
  * switch to http-client-api ([5a6da23](https://github.com/odata2ts/http-client/commit/5a6da23053b3ea5adb866bb7e30b469f1b8ed260))
37
55
 
38
56
  ### BREAKING CHANGES
package/README.md CHANGED
@@ -1,49 +1,49 @@
1
- [![npm (scoped)](https://img.shields.io/npm/v/@odata2ts/http-client-axios?style=for-the-badge)](https://www.npmjs.com/package/@odata2ts/http-client-axios)
2
-
3
- # Axios HTTP Client
4
-
5
- The **Axios HTTP Client** uses - as its name suggests - [axios](https://github.com/axios/axios) for realizing
6
- the HTTP communication for [odata2ts](https://github.com/odata2ts/odata2ts).
7
-
8
- It supports:
9
-
10
- - request configuration
11
- - automatic CSRF token handling
12
-
13
- ## Installation
14
-
15
- Install package `@odata2ts/http-client-axios` as runtime dependency:
16
-
17
- ```bash
18
- npm install --save @odata2ts/http-client-axios
19
- ```
20
-
21
- s
22
-
23
- ## Documentation
24
-
25
- [Axios HTTP Client Documentation](https://odata2ts.github.io/docs/odata-client/http-client/axios)
26
-
27
- Main documentation for the odata2ts eco system:
28
- [https://odata2ts.github.io](https://odata2ts.github.io/)
29
-
30
- ## Tests
31
-
32
- See folder [test](https://github.com/odata2ts/http-client/tree/main/packages/axios/test)
33
- for unit tests.
34
-
35
- See folder [int-test](https://github.com/odata2ts/http-client/tree/main/packages/axios/int-test) for
36
- integration tests.
37
-
38
- ## Support, Feedback, Contributing
39
-
40
- This project is open to feature requests, suggestions, bug reports, usage questions etc.
41
- via [GitHub issues](https://github.com/odata2ts/http-client/issues).
42
-
43
- Contributions and feedback are encouraged and always welcome.
44
-
45
- See the [contribution guidelines](https://github.com/odata2ts/http-client/blob/main/CONTRIBUTING.md) for further information.
46
-
47
- ## License
48
-
49
- MIT - see [License](./LICENSE).
1
+ [![npm (scoped)](https://img.shields.io/npm/v/@odata2ts/http-client-axios?style=for-the-badge)](https://www.npmjs.com/package/@odata2ts/http-client-axios)
2
+
3
+ # Axios HTTP Client
4
+
5
+ The **Axios HTTP Client** uses - as its name suggests - [axios](https://github.com/axios/axios) for realizing
6
+ the HTTP communication for [odata2ts](https://github.com/odata2ts/odata2ts).
7
+
8
+ It supports:
9
+
10
+ - request configuration
11
+ - automatic CSRF token handling
12
+
13
+ ## Installation
14
+
15
+ Install package `@odata2ts/http-client-axios` as runtime dependency:
16
+
17
+ ```bash
18
+ npm install --save @odata2ts/http-client-axios
19
+ ```
20
+
21
+ s
22
+
23
+ ## Documentation
24
+
25
+ [Axios HTTP Client Documentation](https://odata2ts.github.io/docs/odata-client/http-client/axios)
26
+
27
+ Main documentation for the odata2ts eco system:
28
+ [https://odata2ts.github.io](https://odata2ts.github.io/)
29
+
30
+ ## Tests
31
+
32
+ See folder [test](https://github.com/odata2ts/http-client/tree/main/packages/axios/test)
33
+ for unit tests.
34
+
35
+ See folder [int-test](https://github.com/odata2ts/http-client/tree/main/packages/axios/int-test) for
36
+ integration tests.
37
+
38
+ ## Support, Feedback, Contributing
39
+
40
+ This project is open to feature requests, suggestions, bug reports, usage questions etc.
41
+ via [GitHub issues](https://github.com/odata2ts/http-client/issues).
42
+
43
+ Contributions and feedback are encouraged and always welcome.
44
+
45
+ See the [contribution guidelines](https://github.com/odata2ts/http-client/blob/main/CONTRIBUTING.md) for further information.
46
+
47
+ ## License
48
+
49
+ MIT - see [License](./LICENSE).
@@ -1,4 +1,4 @@
1
- import { HttpResponseModel } from "@odata2ts/http-client-api";
1
+ import { HttpResponseModel, InternalHttpClientConfig } from "@odata2ts/http-client-api";
2
2
  import { BaseHttpClient, BaseHttpClientOptions, HttpMethods } from "@odata2ts/http-client-base";
3
3
  import { AxiosInstance, AxiosResponseHeaders, RawAxiosResponseHeaders } from "axios";
4
4
  import { AxiosRequestConfig } from "./AxiosRequestConfig";
@@ -6,10 +6,8 @@ export interface ClientOptions extends BaseHttpClientOptions {
6
6
  }
7
7
  export declare const DEFAULT_ERROR_MESSAGE = "No error message!";
8
8
  export declare class AxiosClient extends BaseHttpClient<AxiosRequestConfig> {
9
- private clientOptions?;
10
9
  protected readonly client: AxiosInstance;
11
- constructor(config?: AxiosRequestConfig, clientOptions?: ClientOptions | undefined);
12
- protected addHeaderToRequestConfig(headers: Record<string, string>, config: AxiosRequestConfig | undefined): AxiosRequestConfig;
13
- protected executeRequest<ResponseModel>(method: HttpMethods, url: string, data: any, requestConfig?: AxiosRequestConfig | undefined): Promise<HttpResponseModel<ResponseModel>>;
10
+ constructor(config?: AxiosRequestConfig, clientOptions?: ClientOptions);
11
+ protected executeRequest<ResponseModel>(method: HttpMethods, url: string, data: any, requestConfig?: AxiosRequestConfig | undefined, internalConfig?: InternalHttpClientConfig): Promise<HttpResponseModel<ResponseModel>>;
14
12
  protected mapHeaders(headers: AxiosResponseHeaders | RawAxiosResponseHeaders): Record<string, string>;
15
13
  }
@@ -18,16 +18,13 @@ function buildErrorMessage(prefix, error) {
18
18
  class AxiosClient extends http_client_base_1.BaseHttpClient {
19
19
  constructor(config, clientOptions) {
20
20
  super(clientOptions);
21
- this.clientOptions = clientOptions;
22
21
  this.client = axios_1.default.create(config);
23
22
  }
24
- addHeaderToRequestConfig(headers, config) {
25
- return (0, AxiosRequestConfig_1.mergeConfig)({ headers }, config);
26
- }
27
- executeRequest(method, url, data, requestConfig = {}) {
23
+ executeRequest(method, url, data, requestConfig = {}, internalConfig = {}) {
28
24
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
29
- // add URL and HTTP method to the request config
30
- const config = (0, AxiosRequestConfig_1.mergeConfig)(requestConfig, { url, method });
25
+ // add URL, HTTP method and additional headers to the request config
26
+ const { headers } = internalConfig;
27
+ const config = (0, AxiosRequestConfig_1.mergeConfig)({ headers }, requestConfig, { url, method });
31
28
  if (typeof data !== "undefined") {
32
29
  config.data = data;
33
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AxiosClient.js","sourceRoot":"","sources":["../src/AxiosClient.ts"],"names":[],"mappings":";;;;AACA,iEAAgG;AAChG,0DAMe;AAEf,yDAAsD;AACtD,6DAAuE;AAI1D,QAAA,qBAAqB,GAAG,mBAAmB,CAAC;AACzD,MAAM,mBAAmB,GAAG,oCAAoC,CAAC;AACjE,MAAM,kBAAkB,GAAG,gCAAgC,CAAC;AAC5D,MAAM,wBAAwB,GAAG,qCAAqC,CAAC;AACvE,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAE9C,SAAS,iBAAiB,CAAC,MAAc,EAAE,KAAU;IACnD,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,KAAe,aAAf,KAAK,uBAAL,KAAK,CAAY,OAAO,CAAC;IAC1E,OAAO,MAAM,GAAG,CAAC,GAAG,IAAI,6BAAqB,CAAC,CAAC;AACjD,CAAC;AAED,MAAa,WAAY,SAAQ,iCAAkC;IAGjE,YAAY,MAA2B,EAAU,aAA6B;QAC5E,KAAK,CAAC,aAAa,CAAC,CAAC;QAD0B,kBAAa,GAAb,aAAa,CAAgB;QAE5E,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAES,wBAAwB,CAChC,OAA+B,EAC/B,MAAsC;QAEtC,OAAO,IAAA,gCAAW,EAAC,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAEe,cAAc,CAC5B,MAAmB,EACnB,GAAW,EACX,IAAS,EACT,gBAAgD,EAAE;;YAElD,gDAAgD;YAChD,MAAM,MAAM,GAA0B,IAAA,gCAAW,EAAC,aAAa,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YAClF,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;gBAC/B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;aACpB;YAED,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC1C;YAAC,OAAO,KAAU,EAAE;gBACnB,IAAK,KAAoB,CAAC,YAAY,EAAE;oBACtC,MAAM,UAAU,GAAG,KAAmB,CAAC;oBAEvC,2BAA2B;oBAC3B,IAAI,UAAU,CAAC,QAAQ,EAAE;wBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBACnE,MAAM,GAAG,GAAG,iBAAiB,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;wBAChE,MAAM,IAAI,mCAAgB,CACxB,GAAG,EACH,UAAU,CAAC,QAAQ,CAAC,MAAM,EAC1B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC5C,IAAI,KAAK,CAAC,MAAM,IAAI,6BAAqB,CAAC,EAC1C,UAAU,CACX,CAAC;qBACH;oBACD,iCAAiC;yBAC5B;wBACH,MAAM,IAAI,mCAAgB,CACxB,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAC5F,SAAS,EACT,SAAS,EACT,KAAK,EACL,UAAU,CACX,CAAC;qBACH;iBACF;gBACD,qBAAqB;gBACrB,MAAM,IAAI,mCAAgB,CAAC,iBAAiB,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;aAClG;QACH,CAAC;KAAA;IAES,UAAU,CAAC,OAAuD;QAC1E,OAAO,OAAiC,CAAC;IAC3C,CAAC;CACF;AAhED,kCAgEC","sourcesContent":["import { HttpResponseModel } from \"@odata2ts/http-client-api\";\nimport { BaseHttpClient, BaseHttpClientOptions, HttpMethods } from \"@odata2ts/http-client-base\";\nimport axios, {\n AxiosError,\n AxiosInstance,\n AxiosResponseHeaders,\n AxiosRequestConfig as OriginalRequestConfig,\n RawAxiosResponseHeaders,\n} from \"axios\";\n\nimport { AxiosClientError } from \"./AxiosClientError\";\nimport { AxiosRequestConfig, mergeConfig } from \"./AxiosRequestConfig\";\n\nexport interface ClientOptions extends BaseHttpClientOptions {}\n\nexport const DEFAULT_ERROR_MESSAGE = \"No error message!\";\nconst FAILURE_NO_RESPONSE = \"No response from server! Failure: \";\nconst FAILURE_NO_REQUEST = \"No request was sent! Failure: \";\nconst FAILURE_RESPONSE_MESSAGE = \"OData server responded with error: \";\nconst FAILURE_AXIOS = \"Fatal Axios failure: \";\n\nfunction buildErrorMessage(prefix: string, error: any) {\n const msg = typeof error === \"string\" ? error : (error as Error)?.message;\n return prefix + (msg || DEFAULT_ERROR_MESSAGE);\n}\n\nexport class AxiosClient extends BaseHttpClient<AxiosRequestConfig> {\n protected readonly client: AxiosInstance;\n\n constructor(config?: AxiosRequestConfig, private clientOptions?: ClientOptions) {\n super(clientOptions);\n this.client = axios.create(config);\n }\n\n protected addHeaderToRequestConfig(\n headers: Record<string, string>,\n config: AxiosRequestConfig | undefined\n ): AxiosRequestConfig {\n return mergeConfig({ headers }, config);\n }\n\n protected async executeRequest<ResponseModel>(\n method: HttpMethods,\n url: string,\n data: any,\n requestConfig: AxiosRequestConfig | undefined = {}\n ): Promise<HttpResponseModel<ResponseModel>> {\n // add URL and HTTP method to the request config\n const config: OriginalRequestConfig = mergeConfig(requestConfig, { url, method });\n if (typeof data !== \"undefined\") {\n config.data = data;\n }\n\n try {\n return await this.client.request(config);\n } catch (error: any) {\n if ((error as AxiosError).isAxiosError) {\n const axiosError = error as AxiosError;\n\n // regular failure handling\n if (axiosError.response) {\n const errMsg = this.retrieveErrorMessage(axiosError.response.data);\n const msg = buildErrorMessage(FAILURE_RESPONSE_MESSAGE, errMsg);\n throw new AxiosClientError(\n msg,\n axiosError.response.status,\n this.mapHeaders(axiosError.response.headers),\n new Error(errMsg || DEFAULT_ERROR_MESSAGE),\n axiosError\n );\n }\n // fatal failure without response\n else {\n throw new AxiosClientError(\n buildErrorMessage(axiosError.request ? FAILURE_NO_RESPONSE : FAILURE_NO_REQUEST, axiosError),\n undefined,\n undefined,\n error,\n axiosError\n );\n }\n }\n // not an Axios error\n throw new AxiosClientError(buildErrorMessage(FAILURE_AXIOS, error), undefined, undefined, error);\n }\n }\n\n protected mapHeaders(headers: AxiosResponseHeaders | RawAxiosResponseHeaders): Record<string, string> {\n return headers as Record<string, string>;\n }\n}\n"]}
1
+ {"version":3,"file":"AxiosClient.js","sourceRoot":"","sources":["../src/AxiosClient.ts"],"names":[],"mappings":";;;;AACA,iEAAgG;AAChG,0DAMe;AAEf,yDAAsD;AACtD,6DAAuE;AAI1D,QAAA,qBAAqB,GAAG,mBAAmB,CAAC;AACzD,MAAM,mBAAmB,GAAG,oCAAoC,CAAC;AACjE,MAAM,kBAAkB,GAAG,gCAAgC,CAAC;AAC5D,MAAM,wBAAwB,GAAG,qCAAqC,CAAC;AACvE,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAE9C,SAAS,iBAAiB,CAAC,MAAc,EAAE,KAAU;IACnD,MAAM,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,KAAe,aAAf,KAAK,uBAAL,KAAK,CAAY,OAAO,CAAC;IAC1E,OAAO,MAAM,GAAG,CAAC,GAAG,IAAI,6BAAqB,CAAC,CAAC;AACjD,CAAC;AAED,MAAa,WAAY,SAAQ,iCAAkC;IAGjE,YAAY,MAA2B,EAAE,aAA6B;QACpE,KAAK,CAAC,aAAa,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAEe,cAAc,CAC5B,MAAmB,EACnB,GAAW,EACX,IAAS,EACT,gBAAgD,EAAE,EAClD,iBAA2C,EAAE;;YAE7C,oEAAoE;YACpE,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;YACnC,MAAM,MAAM,GAA0B,IAAA,gCAAW,EAAC,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/F,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;gBAC/B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;aACpB;YAED,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC1C;YAAC,OAAO,KAAU,EAAE;gBACnB,IAAK,KAAoB,CAAC,YAAY,EAAE;oBACtC,MAAM,UAAU,GAAG,KAAmB,CAAC;oBAEvC,2BAA2B;oBAC3B,IAAI,UAAU,CAAC,QAAQ,EAAE;wBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBACnE,MAAM,GAAG,GAAG,iBAAiB,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;wBAChE,MAAM,IAAI,mCAAgB,CACxB,GAAG,EACH,UAAU,CAAC,QAAQ,CAAC,MAAM,EAC1B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC5C,IAAI,KAAK,CAAC,MAAM,IAAI,6BAAqB,CAAC,EAC1C,UAAU,CACX,CAAC;qBACH;oBACD,iCAAiC;yBAC5B;wBACH,MAAM,IAAI,mCAAgB,CACxB,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAC5F,SAAS,EACT,SAAS,EACT,KAAK,EACL,UAAU,CACX,CAAC;qBACH;iBACF;gBACD,qBAAqB;gBACrB,MAAM,IAAI,mCAAgB,CAAC,iBAAiB,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;aAClG;QACH,CAAC;KAAA;IAES,UAAU,CAAC,OAAuD;QAC1E,OAAO,OAAiC,CAAC;IAC3C,CAAC;CACF;AA3DD,kCA2DC","sourcesContent":["import { HttpResponseModel, InternalHttpClientConfig } from \"@odata2ts/http-client-api\";\r\nimport { BaseHttpClient, BaseHttpClientOptions, HttpMethods } from \"@odata2ts/http-client-base\";\r\nimport axios, {\r\n AxiosError,\r\n AxiosInstance,\r\n AxiosResponseHeaders,\r\n AxiosRequestConfig as OriginalRequestConfig,\r\n RawAxiosResponseHeaders,\r\n} from \"axios\";\r\n\r\nimport { AxiosClientError } from \"./AxiosClientError\";\r\nimport { AxiosRequestConfig, mergeConfig } from \"./AxiosRequestConfig\";\r\n\r\nexport interface ClientOptions extends BaseHttpClientOptions {}\r\n\r\nexport const DEFAULT_ERROR_MESSAGE = \"No error message!\";\r\nconst FAILURE_NO_RESPONSE = \"No response from server! Failure: \";\r\nconst FAILURE_NO_REQUEST = \"No request was sent! Failure: \";\r\nconst FAILURE_RESPONSE_MESSAGE = \"OData server responded with error: \";\r\nconst FAILURE_AXIOS = \"Fatal Axios failure: \";\r\n\r\nfunction buildErrorMessage(prefix: string, error: any) {\r\n const msg = typeof error === \"string\" ? error : (error as Error)?.message;\r\n return prefix + (msg || DEFAULT_ERROR_MESSAGE);\r\n}\r\n\r\nexport class AxiosClient extends BaseHttpClient<AxiosRequestConfig> {\r\n protected readonly client: AxiosInstance;\r\n\r\n constructor(config?: AxiosRequestConfig, clientOptions?: ClientOptions) {\r\n super(clientOptions);\r\n this.client = axios.create(config);\r\n }\r\n\r\n protected async executeRequest<ResponseModel>(\r\n method: HttpMethods,\r\n url: string,\r\n data: any,\r\n requestConfig: AxiosRequestConfig | undefined = {},\r\n internalConfig: InternalHttpClientConfig = {}\r\n ): Promise<HttpResponseModel<ResponseModel>> {\r\n // add URL, HTTP method and additional headers to the request config\r\n const { headers } = internalConfig;\r\n const config: OriginalRequestConfig = mergeConfig({ headers }, requestConfig, { url, method });\r\n if (typeof data !== \"undefined\") {\r\n config.data = data;\r\n }\r\n\r\n try {\r\n return await this.client.request(config);\r\n } catch (error: any) {\r\n if ((error as AxiosError).isAxiosError) {\r\n const axiosError = error as AxiosError;\r\n\r\n // regular failure handling\r\n if (axiosError.response) {\r\n const errMsg = this.retrieveErrorMessage(axiosError.response.data);\r\n const msg = buildErrorMessage(FAILURE_RESPONSE_MESSAGE, errMsg);\r\n throw new AxiosClientError(\r\n msg,\r\n axiosError.response.status,\r\n this.mapHeaders(axiosError.response.headers),\r\n new Error(errMsg || DEFAULT_ERROR_MESSAGE),\r\n axiosError\r\n );\r\n }\r\n // fatal failure without response\r\n else {\r\n throw new AxiosClientError(\r\n buildErrorMessage(axiosError.request ? FAILURE_NO_RESPONSE : FAILURE_NO_REQUEST, axiosError),\r\n undefined,\r\n undefined,\r\n error,\r\n axiosError\r\n );\r\n }\r\n }\r\n // not an Axios error\r\n throw new AxiosClientError(buildErrorMessage(FAILURE_AXIOS, error), undefined, undefined, error);\r\n }\r\n }\r\n\r\n protected mapHeaders(headers: AxiosResponseHeaders | RawAxiosResponseHeaders): Record<string, string> {\r\n return headers as Record<string, string>;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AxiosRequestConfig.js","sourceRoot":"","sources":["../src/AxiosRequestConfig.ts"],"names":[],"mappings":";;;;AAaA,SAAgB,WAAW,CAAC,GAAG,OAAiD;IAC9E,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACnB,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9C,MAAM,CACL,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;QACrB,MAAM,EAAE,OAAO,KAAqB,OAAO,EAAvB,WAAW,kBAAK,OAAO,EAArC,WAA2B,CAAU,CAAC;QAE5C,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,OAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SAClF;QACD,uCAAY,SAAS,GAAK,WAAW,EAAG;IAC1C,CAAC,EACD,EAAE,OAAO,EAAE,EAAE,EAAE,CAChB,CAAC;AACN,CAAC;AAlBD,kCAkBC","sourcesContent":["import { CreateAxiosDefaults, AxiosRequestConfig as OriginalRequestConfig } from \"axios\";\n\nexport interface AxiosRequestConfig extends Omit<OriginalRequestConfig, \"method\" | \"url\" | \"headers\"> {\n headers?: Record<string, string>;\n}\n\nexport interface InternalRequestConfig extends Omit<OriginalRequestConfig, \"headers\"> {\n url?: string;\n headers?: Record<string, string>;\n}\n\nexport function mergeConfig(): undefined;\nexport function mergeConfig(...configs: Array<InternalRequestConfig | undefined>): InternalRequestConfig;\nexport function mergeConfig(...configs: Array<InternalRequestConfig | undefined>) {\n if (!configs.length) {\n return undefined;\n }\n\n return configs\n .filter((c): c is InternalRequestConfig => !!c)\n .reduce<InternalRequestConfig>(\n (collector, current) => {\n const { headers, ...passThrough } = current;\n\n if (headers) {\n Object.entries(headers).forEach(([key, val]) => (collector.headers![key] = val));\n }\n return { ...collector, ...passThrough };\n },\n { headers: {} }\n );\n}\n"]}
1
+ {"version":3,"file":"AxiosRequestConfig.js","sourceRoot":"","sources":["../src/AxiosRequestConfig.ts"],"names":[],"mappings":";;;;AAaA,SAAgB,WAAW,CAAC,GAAG,OAAiD;IAC9E,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACnB,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9C,MAAM,CACL,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;QACrB,MAAM,EAAE,OAAO,KAAqB,OAAO,EAAvB,WAAW,kBAAK,OAAO,EAArC,WAA2B,CAAU,CAAC;QAE5C,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,OAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SAClF;QACD,uCAAY,SAAS,GAAK,WAAW,EAAG;IAC1C,CAAC,EACD,EAAE,OAAO,EAAE,EAAE,EAAE,CAChB,CAAC;AACN,CAAC;AAlBD,kCAkBC","sourcesContent":["import { CreateAxiosDefaults, AxiosRequestConfig as OriginalRequestConfig } from \"axios\";\r\n\r\nexport interface AxiosRequestConfig extends Omit<OriginalRequestConfig, \"method\" | \"url\" | \"headers\"> {\r\n headers?: Record<string, string>;\r\n}\r\n\r\nexport interface InternalRequestConfig extends Omit<OriginalRequestConfig, \"headers\"> {\r\n url?: string;\r\n headers?: Record<string, string>;\r\n}\r\n\r\nexport function mergeConfig(): undefined;\r\nexport function mergeConfig(...configs: Array<InternalRequestConfig | undefined>): InternalRequestConfig;\r\nexport function mergeConfig(...configs: Array<InternalRequestConfig | undefined>) {\r\n if (!configs.length) {\r\n return undefined;\r\n }\r\n\r\n return configs\r\n .filter((c): c is InternalRequestConfig => !!c)\r\n .reduce<InternalRequestConfig>(\r\n (collector, current) => {\r\n const { headers, ...passThrough } = current;\r\n\r\n if (headers) {\r\n Object.entries(headers).forEach(([key, val]) => (collector.headers![key] = val));\r\n }\r\n return { ...collector, ...passThrough };\r\n },\r\n { headers: {} }\r\n );\r\n}\r\n"]}
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,wDAA8B;AAC9B,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA","sourcesContent":["export * from \"./AxiosClient\";\nexport { AxiosClientError } from \"./AxiosClientError\";\nexport { AxiosRequestConfig } from \"./AxiosRequestConfig\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,wDAA8B;AAC9B,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA","sourcesContent":["export * from \"./AxiosClient\";\r\nexport { AxiosClientError } from \"./AxiosClientError\";\r\nexport { AxiosRequestConfig } from \"./AxiosRequestConfig\";\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odata2ts/http-client-axios",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -34,7 +34,7 @@
34
34
  "axios": "^0.27.0 || ^1.0.0"
35
35
  },
36
36
  "dependencies": {
37
- "@odata2ts/http-client-base": "^0.3.0"
37
+ "@odata2ts/http-client-base": "^0.4.0"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/jest": "^27.4.1",
@@ -47,5 +47,5 @@
47
47
  "typescript": "5.0.4"
48
48
  },
49
49
  "types": "./lib/index.d.ts",
50
- "gitHead": "dc6e29cef27b2f5fca6e838e4a22766b90249e8e"
50
+ "gitHead": "67c7fc10f25461c33baf4e35694a457a03b81b78"
51
51
  }