@odata2ts/http-client-axios 0.11.3 → 0.12.1

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,61 @@
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.12.1](https://github.com/odata2ts/http-client/compare/@odata2ts/axios-v0.12.0...@odata2ts/axios-v0.12.1) (2026-06-10)
7
+
8
+
9
+ ### Features
10
+
11
+ * create blob request ([#28](https://github.com/odata2ts/http-client/issues/28)) ([4cc238d](https://github.com/odata2ts/http-client/commit/4cc238d3fbe07c09d56732b4b12d0b1b875a3ef5))
12
+
13
+
14
+ ### Dependencies
15
+
16
+ * The following workspace dependencies were updated
17
+ * dependencies
18
+ * @odata2ts/http-client-base bumped from ^0.5.4 to ^0.5.5
19
+
20
+ ## [0.12.0](https://github.com/odata2ts/http-client/compare/@odata2ts/axios-v0.11.3...@odata2ts/axios-v0.12.0) (2025-03-26)
21
+
22
+
23
+ ### ⚠ BREAKING CHANGES
24
+
25
+ * switch to ESM tends to break stuff
26
+ * additional headers are now part of the config parameter
27
+ * **axios:** removed default accept & content-type headers; removed merge & retrieveBigNumbersAsString methods (base-lib); all of these settings can now be configured per operation via the `additionalHeaders` option.
28
+ * **axios:** new name and axios becomes peer dependency
29
+
30
+ ### Features
31
+
32
+ * allow for additional headers for all operations ([#10](https://github.com/odata2ts/http-client/issues/10)) ([75eedd3](https://github.com/odata2ts/http-client/commit/75eedd3ebb8534188a5a644aee9e69e17f1f0c80))
33
+ * **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))
34
+ * blob and stream support ([#12](https://github.com/odata2ts/http-client/issues/12)) ([ae6f062](https://github.com/odata2ts/http-client/commit/ae6f062371a0ad11707fa3f9edff9571998edb5b))
35
+ * conventionalize client errors ([#5](https://github.com/odata2ts/http-client/issues/5)) ([a8e8912](https://github.com/odata2ts/http-client/commit/a8e89125eeda47436d48507d6a71efc90953f878))
36
+ * switch to http-client-api ([52d1b86](https://github.com/odata2ts/http-client/commit/52d1b868ee82dbaf45486da6b22fdcf4c773dfb8))
37
+ * switch to http-client-api ([5a6da23](https://github.com/odata2ts/http-client/commit/5a6da23053b3ea5adb866bb7e30b469f1b8ed260))
38
+
39
+
40
+ ### Bug Fixes
41
+
42
+ * add ".js" suffix for all relative imports ([#20](https://github.com/odata2ts/http-client/issues/20)) ([961c910](https://github.com/odata2ts/http-client/commit/961c91002c8b1e9a7a6256cccd6b6d0ec9c142cd))
43
+ * always build all packages before release ([#26](https://github.com/odata2ts/http-client/issues/26)) ([a316f6c](https://github.com/odata2ts/http-client/commit/a316f6ce54c4360c8d6f87799ba6fd9c53bff52c))
44
+ * delete requests with Accept json header ([ea1b06d](https://github.com/odata2ts/http-client/commit/ea1b06d509b490e1e899e96a62a10eac3f65da8e))
45
+ * deploy with code ([#25](https://github.com/odata2ts/http-client/issues/25)) ([3e0e78c](https://github.com/odata2ts/http-client/commit/3e0e78cd2e0b0c3215bc0ed97dd62c75d8b6c5ea))
46
+
47
+
48
+ ### Code Refactoring
49
+
50
+ * **axios:** remove default headers ([7fcff0c](https://github.com/odata2ts/http-client/commit/7fcff0c8f1a0962abc60da84cde57e0469cc0bc2))
51
+ * expand additionalHeaders param to internalConfig ([#15](https://github.com/odata2ts/http-client/issues/15)) ([7fe1d73](https://github.com/odata2ts/http-client/commit/7fe1d73a7436f64b84a060bd1dbf9e121ef901ce))
52
+ * switch to vitest & ESM ([#18](https://github.com/odata2ts/http-client/issues/18)) ([748558f](https://github.com/odata2ts/http-client/commit/748558f1e3f699085ade1058b1459c843f60994f))
53
+
54
+
55
+ ### Dependencies
56
+
57
+ * The following workspace dependencies were updated
58
+ * dependencies
59
+ * @odata2ts/http-client-base bumped from ^0.5.3 to ^0.5.4
60
+
6
61
  ## [0.11.3](https://github.com/odata2ts/http-client/compare/@odata2ts/http-client-axios@0.11.2...@odata2ts/http-client-axios@0.11.3) (2024-08-24)
7
62
 
8
63
  **Note:** Version bump only for package @odata2ts/http-client-axios
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2021 odata2ts
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2021 odata2ts
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,13 +1,11 @@
1
- import { HttpResponseModel, ODataHttpClient } from "@odata2ts/http-client-api";
2
- import { BaseHttpClient, BaseHttpClientOptions, HttpMethods, InternalHttpClientConfig } from "@odata2ts/http-client-base";
1
+ import { HttpResponseModel, ODataHttpClient, ODataHttpClientOptions, ODataHttpMethods } from "@odata2ts/http-client-api";
2
+ import { BaseHttpClient, BaseRequestConfig } from "@odata2ts/http-client-base";
3
3
  import { AxiosInstance, AxiosResponseHeaders, RawAxiosResponseHeaders } from "axios";
4
4
  import { AxiosRequestConfig } from "./AxiosRequestConfig";
5
- export interface ClientOptions extends BaseHttpClientOptions {
6
- }
7
5
  export declare const DEFAULT_ERROR_MESSAGE = "No error message!";
8
6
  export declare class AxiosClient extends BaseHttpClient<AxiosRequestConfig> implements ODataHttpClient<AxiosRequestConfig> {
9
7
  protected readonly client: AxiosInstance;
10
- constructor(config?: AxiosRequestConfig, clientOptions?: ClientOptions);
11
- protected executeRequest<ResponseModel>(method: HttpMethods, url: string, data: any, requestConfig?: AxiosRequestConfig | undefined, internalConfig?: InternalHttpClientConfig): Promise<HttpResponseModel<ResponseModel>>;
8
+ constructor(config?: AxiosRequestConfig, clientOptions?: ODataHttpClientOptions);
9
+ protected executeRequest<ResponseModel>(method: ODataHttpMethods, url: string, data: any, requestConfig?: AxiosRequestConfig | undefined, internalConfig?: BaseRequestConfig): Promise<HttpResponseModel<ResponseModel>>;
12
10
  protected mapHeaders(headers: AxiosResponseHeaders | RawAxiosResponseHeaders): Record<string, string>;
13
11
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AxiosClient = exports.DEFAULT_ERROR_MESSAGE = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const ODataHttpDataTypes_1 = require("@odata2ts/http-client-api/lib/ODataHttpDataTypes");
5
6
  const http_client_base_1 = require("@odata2ts/http-client-base");
6
7
  const axios_1 = tslib_1.__importDefault(require("axios"));
7
8
  const AxiosClientError_1 = require("./AxiosClientError");
@@ -22,17 +23,18 @@ class AxiosClient extends http_client_base_1.BaseHttpClient {
22
23
  }
23
24
  executeRequest(method, url, data, requestConfig = {}, internalConfig = {}) {
24
25
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
25
- // add URL, HTTP method and additional headers to the request config
26
26
  const { headers } = internalConfig;
27
- const config = (0, AxiosRequestConfig_1.mergeConfig)({ headers }, requestConfig, { url, method });
27
+ // set core inputs for request
28
+ const resultConfig = Object.assign(Object.assign({}, (0, AxiosRequestConfig_1.mergeConfig)({ headers }, requestConfig)), { url,
29
+ method });
28
30
  if (typeof data !== "undefined") {
29
- config.data = data;
31
+ resultConfig.data = data;
30
32
  }
31
- if (internalConfig.dataType && internalConfig.dataType !== "json") {
32
- config.responseType = internalConfig.dataType;
33
+ if (internalConfig.dataType && internalConfig.dataType !== ODataHttpDataTypes_1.ODataHttpDataTypes.JSON) {
34
+ resultConfig.responseType = internalConfig.dataType;
33
35
  }
34
36
  try {
35
- return yield this.client.request(config);
37
+ return yield this.client.request(resultConfig);
36
38
  }
37
39
  catch (error) {
38
40
  if (error.isAxiosError) {
@@ -1 +1 @@
1
- {"version":3,"file":"AxiosClient.js","sourceRoot":"","sources":["../src/AxiosClient.ts"],"names":[],"mappings":";;;;AACA,iEAKoC;AACpC,0DAMe;AACf,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,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,MAAM,EAAE;gBACjE,MAAM,CAAC,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC;aAC/C;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;AA/DD,kCA+DC","sourcesContent":["import { HttpResponseModel, ODataHttpClient } from \"@odata2ts/http-client-api\";\r\nimport {\r\n BaseHttpClient,\r\n BaseHttpClientOptions,\r\n HttpMethods,\r\n InternalHttpClientConfig,\r\n} 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\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> implements ODataHttpClient<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 if (internalConfig.dataType && internalConfig.dataType !== \"json\") {\r\n config.responseType = internalConfig.dataType;\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
+ {"version":3,"file":"AxiosClient.js","sourceRoot":"","sources":["../src/AxiosClient.ts"],"names":[],"mappings":";;;;AAMA,yFAAsF;AACtF,iEAA+E;AAC/E,0DAMe;AACf,yDAAsD;AACtD,6DAAuE;AAE1D,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;AAMD,MAAa,WAAY,SAAQ,iCAAkC;IAGjE,YAAY,MAA2B,EAAE,aAAsC;QAC7E,KAAK,CAAC,aAAa,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAEe,cAAc,CAC5B,MAAwB,EACxB,GAAW,EACX,IAAS,EACT,gBAAgD,EAAE,EAClD,iBAAoC,EAAE;;YAEtC,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;YAEnC,8BAA8B;YAC9B,MAAM,YAAY,mCACb,IAAA,gCAAW,EAAC,EAAE,OAAO,EAAE,EAAE,aAAa,CAAC,KAC1C,GAAG;gBACH,MAAM,GACP,CAAC;YACF,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;gBAC/B,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;aAC1B;YACD,IAAI,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,uCAAkB,CAAC,IAAI,EAAE;gBAClF,YAAY,CAAC,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC;aACrD;YAED,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;aAChD;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;AAnED,kCAmEC","sourcesContent":["import {\n HttpResponseModel,\n ODataHttpClient,\n ODataHttpClientOptions,\n ODataHttpMethods,\n} from \"@odata2ts/http-client-api\";\nimport { ODataHttpDataTypes } from \"@odata2ts/http-client-api/lib/ODataHttpDataTypes\";\nimport { BaseHttpClient, BaseRequestConfig } from \"@odata2ts/http-client-base\";\nimport axios, {\n AxiosError,\n AxiosInstance,\n AxiosResponseHeaders,\n AxiosRequestConfig as OriginalRequestConfig,\n RawAxiosResponseHeaders,\n} from \"axios\";\nimport { AxiosClientError } from \"./AxiosClientError\";\nimport { AxiosRequestConfig, mergeConfig } from \"./AxiosRequestConfig\";\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\ninterface InternalRequestConfig\n extends AxiosRequestConfig,\n Pick<OriginalRequestConfig, \"method\" | \"url\" | \"responseType\"> {}\n\nexport class AxiosClient extends BaseHttpClient<AxiosRequestConfig> implements ODataHttpClient<AxiosRequestConfig> {\n protected readonly client: AxiosInstance;\n\n constructor(config?: AxiosRequestConfig, clientOptions?: ODataHttpClientOptions) {\n super(clientOptions);\n this.client = axios.create(config);\n }\n\n protected async executeRequest<ResponseModel>(\n method: ODataHttpMethods,\n url: string,\n data: any,\n requestConfig: AxiosRequestConfig | undefined = {},\n internalConfig: BaseRequestConfig = {},\n ): Promise<HttpResponseModel<ResponseModel>> {\n const { headers } = internalConfig;\n\n // set core inputs for request\n const resultConfig: InternalRequestConfig = {\n ...mergeConfig({ headers }, requestConfig),\n url,\n method,\n };\n if (typeof data !== \"undefined\") {\n resultConfig.data = data;\n }\n if (internalConfig.dataType && internalConfig.dataType !== ODataHttpDataTypes.JSON) {\n resultConfig.responseType = internalConfig.dataType;\n }\n\n try {\n return await this.client.request(resultConfig);\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,10 +1,6 @@
1
+ import { ODataRequestConfig } from "@odata2ts/http-client-api";
1
2
  import { AxiosRequestConfig as OriginalRequestConfig } from "axios";
2
- export interface AxiosRequestConfig extends Omit<OriginalRequestConfig, "method" | "url" | "headers"> {
3
- headers?: Record<string, string>;
4
- }
5
- export interface InternalRequestConfig extends Omit<OriginalRequestConfig, "headers"> {
6
- url?: string;
7
- headers?: Record<string, string>;
3
+ export interface AxiosRequestConfig extends ODataRequestConfig, Omit<OriginalRequestConfig, "method" | "url" | "headers" | "params"> {
8
4
  }
9
5
  export declare function mergeConfig(): undefined;
10
- export declare function mergeConfig(...configs: Array<InternalRequestConfig | undefined>): InternalRequestConfig;
6
+ export declare function mergeConfig(...configs: Array<AxiosRequestConfig | undefined>): AxiosRequestConfig;
@@ -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 { 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"]}
1
+ {"version":3,"file":"AxiosRequestConfig.js","sourceRoot":"","sources":["../src/AxiosRequestConfig.ts"],"names":[],"mappings":";;;;AASA,SAAgB,WAAW,CAAC,GAAG,OAA8C;IAC3E,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACnB,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3C,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 { ODataRequestConfig } from \"@odata2ts/http-client-api\";\nimport { AxiosRequestConfig as OriginalRequestConfig } from \"axios\";\n\nexport interface AxiosRequestConfig\n extends ODataRequestConfig,\n Omit<OriginalRequestConfig, \"method\" | \"url\" | \"headers\" | \"params\"> {}\n\nexport function mergeConfig(): undefined;\nexport function mergeConfig(...configs: Array<AxiosRequestConfig | undefined>): AxiosRequestConfig;\nexport function mergeConfig(...configs: Array<AxiosRequestConfig | undefined>) {\n if (!configs.length) {\n return undefined;\n }\n\n return configs\n .filter((c): c is AxiosRequestConfig => !!c)\n .reduce<AxiosRequestConfig>(\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"]}
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\";\r\nexport { AxiosClientError } from \"./AxiosClientError\";\r\nexport { AxiosRequestConfig } from \"./AxiosRequestConfig\";\r\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\";\nexport { AxiosClientError } from \"./AxiosClientError\";\nexport { AxiosRequestConfig } from \"./AxiosRequestConfig\";\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odata2ts/http-client-axios",
3
- "version": "0.11.3",
3
+ "version": "0.12.1",
4
4
  "description": "Axios based odata HTTP client consumable by odata2ts",
5
5
  "keywords": [
6
6
  "http client",
@@ -28,11 +28,10 @@
28
28
  "compile": "tsc",
29
29
  "unit-test": "vitest run --dir test",
30
30
  "int-test": "vitest run --dir int-test",
31
- "test": "vitest run",
32
- "prepublish": "yarn build"
31
+ "test": "vitest run"
33
32
  },
34
33
  "dependencies": {
35
- "@odata2ts/http-client-base": "^0.5.3"
34
+ "@odata2ts/http-client-base": "^0.5.5"
36
35
  },
37
36
  "devDependencies": {
38
37
  "@types/node": "^17.0.23",
@@ -45,6 +44,5 @@
45
44
  },
46
45
  "publishConfig": {
47
46
  "access": "public"
48
- },
49
- "gitHead": "d74b162906b89826cce7944308bc5950e325389f"
50
- }
47
+ }
48
+ }