@odata2ts/http-client-axios 0.8.0 → 0.8.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,10 @@
|
|
|
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.8.1](https://github.com/odata2ts/http-client/compare/@odata2ts/http-client-axios@0.8.0...@odata2ts/http-client-axios@0.8.1) (2023-07-26)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @odata2ts/http-client-axios
|
|
9
|
+
|
|
6
10
|
# [0.8.0](https://github.com/odata2ts/http-client/compare/@odata2ts/http-client-axios@0.7.0...@odata2ts/http-client-axios@0.8.0) (2023-06-10)
|
|
7
11
|
|
|
8
12
|
### Features
|
package/lib/AxiosClient.js
CHANGED
|
@@ -39,12 +39,13 @@ class AxiosClient extends http_client_base_1.BaseHttpClient {
|
|
|
39
39
|
const axiosError = error;
|
|
40
40
|
// regular failure handling
|
|
41
41
|
if (axiosError.response) {
|
|
42
|
-
const
|
|
43
|
-
|
|
42
|
+
const errMsg = this.retrieveErrorMessage(axiosError.response.data);
|
|
43
|
+
const msg = buildErrorMessage(FAILURE_RESPONSE_MESSAGE, errMsg);
|
|
44
|
+
throw new AxiosClientError_1.AxiosClientError(msg, axiosError.response.status, this.mapHeaders(axiosError.response.headers), new Error(errMsg || exports.DEFAULT_ERROR_MESSAGE), axiosError);
|
|
44
45
|
}
|
|
45
46
|
// fatal failure without response
|
|
46
47
|
else {
|
|
47
|
-
throw new AxiosClientError_1.AxiosClientError(buildErrorMessage(axiosError.request ? FAILURE_NO_RESPONSE : FAILURE_NO_REQUEST, axiosError), undefined, undefined, axiosError);
|
|
48
|
+
throw new AxiosClientError_1.AxiosClientError(buildErrorMessage(axiosError.request ? FAILURE_NO_RESPONSE : FAILURE_NO_REQUEST, axiosError), undefined, undefined, error, axiosError);
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
// not an Axios error
|
package/lib/AxiosClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AxiosClient.js","sourceRoot":"","sources":["../src/AxiosClient.ts"],"names":[],"mappings":";;;;AACA,iEAAgG;AAChG,0DAMe;AAEf,yDAAsD;AACtD,6DAAyF;AAI5E,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,IAAA,qCAAgB,EAAC,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,wBAAwB,CAChC,OAA+B,EAC/B,MAAsC;QAEtC,OAAO,IAAA,gCAAW,EAAC,MAAM,EAAE,EAAE,OAAO,EAAE,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,
|
|
1
|
+
{"version":3,"file":"AxiosClient.js","sourceRoot":"","sources":["../src/AxiosClient.ts"],"names":[],"mappings":";;;;AACA,iEAAgG;AAChG,0DAMe;AAEf,yDAAsD;AACtD,6DAAyF;AAI5E,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,IAAA,qCAAgB,EAAC,MAAM,CAAC,CAAC,CAAC;IACvD,CAAC;IAES,wBAAwB,CAChC,OAA+B,EAC/B,MAAsC;QAEtC,OAAO,IAAA,gCAAW,EAAC,MAAM,EAAE,EAAE,OAAO,EAAE,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\";\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, getDefaultConfig, 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, private clientOptions?: ClientOptions) {\r\n super(clientOptions);\r\n this.client = axios.create(getDefaultConfig(config));\r\n }\r\n\r\n protected addHeaderToRequestConfig(\r\n headers: Record<string, string>,\r\n config: AxiosRequestConfig | undefined\r\n ): AxiosRequestConfig {\r\n return mergeConfig(config, { headers });\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 ): Promise<HttpResponseModel<ResponseModel>> {\r\n // add URL and HTTP method to the request config\r\n const config: OriginalRequestConfig = mergeConfig(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"]}
|
|
@@ -3,6 +3,7 @@ import type { AxiosError } from "axios";
|
|
|
3
3
|
export declare class AxiosClientError extends Error implements ODataClientError {
|
|
4
4
|
readonly status?: number | undefined;
|
|
5
5
|
readonly headers?: Record<string, string> | undefined;
|
|
6
|
-
readonly cause?: Error |
|
|
7
|
-
|
|
6
|
+
readonly cause?: Error | undefined;
|
|
7
|
+
readonly axiosError?: AxiosError<unknown, any> | undefined;
|
|
8
|
+
constructor(msg: string, status?: number | undefined, headers?: Record<string, string> | undefined, cause?: Error | undefined, axiosError?: AxiosError<unknown, any> | undefined);
|
|
8
9
|
}
|
package/lib/AxiosClientError.js
CHANGED
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AxiosClientError = void 0;
|
|
4
4
|
class AxiosClientError extends Error {
|
|
5
|
-
constructor(msg, status, headers, cause) {
|
|
5
|
+
constructor(msg, status, headers, cause, axiosError) {
|
|
6
6
|
// @ts-ignore: fetch requires lib "dom" or "webworker", but then the "cause" property becomes unknown to TS
|
|
7
7
|
super(msg, { cause });
|
|
8
8
|
this.status = status;
|
|
9
9
|
this.headers = headers;
|
|
10
10
|
this.cause = cause;
|
|
11
|
+
this.axiosError = axiosError;
|
|
11
12
|
this.name = this.constructor.name;
|
|
12
13
|
}
|
|
13
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AxiosClientError.js","sourceRoot":"","sources":["../src/AxiosClientError.ts"],"names":[],"mappings":";;;AAGA,MAAa,gBAAiB,SAAQ,KAAK;IACzC,YACE,GAAW,EACK,MAAe,EACf,OAAgC,EAChC,
|
|
1
|
+
{"version":3,"file":"AxiosClientError.js","sourceRoot":"","sources":["../src/AxiosClientError.ts"],"names":[],"mappings":";;;AAGA,MAAa,gBAAiB,SAAQ,KAAK;IACzC,YACE,GAAW,EACK,MAAe,EACf,OAAgC,EAChC,KAAa,EACb,UAAuB;QAEvC,2GAA2G;QAC3G,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QANN,WAAM,GAAN,MAAM,CAAS;QACf,YAAO,GAAP,OAAO,CAAyB;QAChC,UAAK,GAAL,KAAK,CAAQ;QACb,eAAU,GAAV,UAAU,CAAa;QAIvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AAZD,4CAYC","sourcesContent":["import { ODataClientError } from \"@odata2ts/http-client-api\";\r\nimport type { AxiosError } from \"axios\";\r\n\r\nexport class AxiosClientError extends Error implements ODataClientError {\r\n constructor(\r\n msg: string,\r\n public readonly status?: number,\r\n public readonly headers?: Record<string, string>,\r\n public readonly cause?: Error,\r\n public readonly axiosError?: AxiosError\r\n ) {\r\n // @ts-ignore: fetch requires lib \"dom\" or \"webworker\", but then the \"cause\" property becomes unknown to TS\r\n super(msg, { cause });\r\n this.name = this.constructor.name;\r\n }\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odata2ts/http-client-axios",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.1",
|
|
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.
|
|
37
|
+
"@odata2ts/http-client-base": "^0.2.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": "
|
|
50
|
+
"gitHead": "9babd2df3010673249e7e3fa26705a8ba84f2cef"
|
|
51
51
|
}
|