@rf-logger/logger-axios 0.3.1 → 0.4.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/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { LoggerPlugin } from "@rf-logger/logger";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { registerAxiosInterceptor } from "./interceptors/axios.interceptor";
|
|
3
|
+
declare const AxiosPlugin: LoggerPlugin;
|
|
4
|
+
export { AxiosPlugin, registerAxiosInterceptor };
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerAxiosInterceptor = exports.AxiosPlugin = void 0;
|
|
3
4
|
const axios_interceptor_1 = require("./interceptors/axios.interceptor");
|
|
4
|
-
|
|
5
|
+
Object.defineProperty(exports, "registerAxiosInterceptor", { enumerable: true, get: function () { return axios_interceptor_1.registerAxiosInterceptor; } });
|
|
6
|
+
const AxiosPlugin = {
|
|
5
7
|
registerInterceptors: (logger) => {
|
|
6
|
-
(0, axios_interceptor_1.
|
|
8
|
+
(0, axios_interceptor_1.registerLoggerInterceptor)(logger);
|
|
7
9
|
},
|
|
8
10
|
};
|
|
9
|
-
exports.
|
|
11
|
+
exports.AxiosPlugin = AxiosPlugin;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type { AxiosInstance } from "axios";
|
|
2
1
|
import { Logger } from "winston";
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Use this method to enhance the Axios module before any other Axios instance gets created
|
|
4
|
+
*/
|
|
5
|
+
export declare const registerAxiosInterceptor: () => void;
|
|
6
|
+
export declare const registerLoggerInterceptor: (logger: Logger) => void;
|
|
@@ -36,14 +36,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.
|
|
39
|
+
exports.registerLoggerInterceptor = exports.registerAxiosInterceptor = void 0;
|
|
40
40
|
const axios_1 = __importDefault(require("axios"));
|
|
41
41
|
const axios_better_stacktrace_1 = __importDefault(require("axios-better-stacktrace"));
|
|
42
42
|
const AxiosLogger = __importStar(require("axios-logger"));
|
|
43
|
+
const globalState = {
|
|
44
|
+
axiosModuleEnhanced: false,
|
|
45
|
+
logger: undefined,
|
|
46
|
+
};
|
|
43
47
|
/**
|
|
44
48
|
* Wrap axios-logger "error" interceptor to customize the output.
|
|
45
49
|
*/
|
|
46
|
-
const wrappedErrorLogger =
|
|
50
|
+
const wrappedErrorLogger = async (error) => AxiosLogger.errorLogger(error, {
|
|
47
51
|
logger: (message) => {
|
|
48
52
|
const statusCode = error.response?.status;
|
|
49
53
|
const request = error.request;
|
|
@@ -70,7 +74,7 @@ const wrappedErrorLogger = (logger) => async (error) => AxiosLogger.errorLogger(
|
|
|
70
74
|
logLevel = "warn";
|
|
71
75
|
}
|
|
72
76
|
}
|
|
73
|
-
logger
|
|
77
|
+
globalState.logger?.log(logLevel,
|
|
74
78
|
// We add the error directly in the message for easy reading
|
|
75
79
|
message, {
|
|
76
80
|
channel: "axios",
|
|
@@ -84,31 +88,45 @@ const wrappedErrorLogger = (logger) => async (error) => AxiosLogger.errorLogger(
|
|
|
84
88
|
headers: true,
|
|
85
89
|
data: true,
|
|
86
90
|
});
|
|
87
|
-
const axiosLogRequestResponse = (axios
|
|
88
|
-
axios.interceptors.request.use(AxiosLogger.requestLogger, wrappedErrorLogger
|
|
89
|
-
axios.interceptors.response.use(AxiosLogger.responseLogger, wrappedErrorLogger
|
|
91
|
+
const axiosLogRequestResponse = (axios) => {
|
|
92
|
+
axios.interceptors.request.use(AxiosLogger.requestLogger, wrappedErrorLogger);
|
|
93
|
+
axios.interceptors.response.use(AxiosLogger.responseLogger, wrappedErrorLogger);
|
|
90
94
|
};
|
|
91
|
-
const enhanceAxiosInstance = (axios
|
|
95
|
+
const enhanceAxiosInstance = (axios) => {
|
|
92
96
|
(0, axios_better_stacktrace_1.default)(axios);
|
|
93
|
-
axiosLogRequestResponse(axios
|
|
97
|
+
axiosLogRequestResponse(axios);
|
|
94
98
|
};
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
99
|
+
const enhanceAxiosModule = (axios) => {
|
|
100
|
+
if (globalState.axiosModuleEnhanced)
|
|
101
|
+
return;
|
|
102
|
+
globalState.axiosModuleEnhanced = true;
|
|
103
|
+
enhanceAxiosInstance(axios);
|
|
98
104
|
axios.create = ((originalCreate) => {
|
|
99
105
|
return (config) => {
|
|
100
106
|
const instance = originalCreate.apply(this, [config]);
|
|
101
|
-
|
|
107
|
+
enhanceAxiosInstance(instance);
|
|
102
108
|
return instance;
|
|
103
109
|
};
|
|
104
110
|
})(axios.create);
|
|
105
111
|
};
|
|
106
|
-
const
|
|
112
|
+
const commonGlobalLogConfig = {
|
|
113
|
+
data: false, // whether to include POST data in logs
|
|
114
|
+
params: true, // whether to include query parameters in logs
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Use this method to enhance the Axios module before any other Axios instance gets created
|
|
118
|
+
*/
|
|
119
|
+
const registerAxiosInterceptor = () => {
|
|
120
|
+
AxiosLogger.setGlobalConfig(commonGlobalLogConfig);
|
|
121
|
+
enhanceAxiosModule(axios_1.default);
|
|
122
|
+
};
|
|
123
|
+
exports.registerAxiosInterceptor = registerAxiosInterceptor;
|
|
124
|
+
const registerLoggerInterceptor = (logger) => {
|
|
125
|
+
globalState.logger = logger;
|
|
107
126
|
AxiosLogger.setGlobalConfig({
|
|
127
|
+
...commonGlobalLogConfig,
|
|
108
128
|
logger: (message) => logger.http(message, { channel: "axios" }),
|
|
109
|
-
data: false, // whether to include POST data in logs
|
|
110
|
-
params: true, // whether to include query parameters in logs
|
|
111
129
|
});
|
|
112
|
-
enhanceAxiosModule(axios_1.default
|
|
130
|
+
enhanceAxiosModule(axios_1.default);
|
|
113
131
|
};
|
|
114
|
-
exports.
|
|
132
|
+
exports.registerLoggerInterceptor = registerLoggerInterceptor;
|
package/package.json
CHANGED
|
@@ -7,21 +7,21 @@
|
|
|
7
7
|
"peerDependencies": {
|
|
8
8
|
"axios": "~0.27 || ^1.5",
|
|
9
9
|
"winston": "^3.8.2",
|
|
10
|
-
"@rf-logger/logger": "0.
|
|
10
|
+
"@rf-logger/logger": "0.4.1../logger"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"axios-better-stacktrace": "^2.1.5",
|
|
14
14
|
"axios-logger": "^2.7.1"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"axios": "^1.
|
|
17
|
+
"axios": "^1.13.5",
|
|
18
18
|
"axios-mock-adapter": "^1.22.0",
|
|
19
19
|
"axios-retry": "^4.0.0"
|
|
20
20
|
},
|
|
21
21
|
"engines": {
|
|
22
22
|
"node": ">=16.0.0"
|
|
23
23
|
},
|
|
24
|
-
"version": "0.
|
|
24
|
+
"version": "0.4.1",
|
|
25
25
|
"scripts": {
|
|
26
26
|
"test": "jest",
|
|
27
27
|
"version": "pnpm version --no-git-tag-version"
|