@rf-logger/logger-axios 0.2.0 → 0.3.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.
@@ -15,22 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
34
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
35
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
37
  };
@@ -42,49 +43,46 @@ const AxiosLogger = __importStar(require("axios-logger"));
42
43
  /**
43
44
  * Wrap axios-logger "error" interceptor to customize the output.
44
45
  */
45
- const wrappedErrorLogger = (logger) => (error) => __awaiter(void 0, void 0, void 0, function* () {
46
- return AxiosLogger.errorLogger(error, {
47
- logger: (message) => {
48
- var _a;
49
- const statusCode = (_a = error.response) === null || _a === void 0 ? void 0 : _a.status;
50
- const request = error.request;
51
- const response = error.response;
52
- // To prevent cluttering the logs with the whole
53
- // request and response objects, we omit them.
54
- error.request = undefined;
55
- error.response = undefined;
56
- // In case of a 400 HTTP error, we only log it as a debug
57
- // In case of a 500 HTTP error, we log it as a real error
58
- let logLevel = statusCode && statusCode < 500 ? "debug" : "error";
59
- // Reduce the log level from "error" to "warn" when using axios-retry and this is not the last retry
60
- if (logLevel === "error" &&
61
- error.config &&
62
- "axios-retry" in error.config) {
63
- const axiosRetryConfig = error.config["axios-retry"];
64
- if (axiosRetryConfig &&
65
- typeof axiosRetryConfig === "object" &&
66
- "retryCount" in axiosRetryConfig &&
67
- "retries" in axiosRetryConfig &&
68
- typeof axiosRetryConfig.retryCount === "number" &&
69
- typeof axiosRetryConfig.retries === "number" &&
70
- axiosRetryConfig.retryCount < axiosRetryConfig.retries) {
71
- logLevel = "warn";
72
- }
46
+ const wrappedErrorLogger = (logger) => async (error) => AxiosLogger.errorLogger(error, {
47
+ logger: (message) => {
48
+ const statusCode = error.response?.status;
49
+ const request = error.request;
50
+ const response = error.response;
51
+ // To prevent cluttering the logs with the whole
52
+ // request and response objects, we omit them.
53
+ error.request = undefined;
54
+ error.response = undefined;
55
+ // In case of a 400 HTTP error, we only log it as a debug
56
+ // In case of a 500 HTTP error, we log it as a real error
57
+ let logLevel = statusCode && statusCode < 500 ? "debug" : "error";
58
+ // Reduce the log level from "error" to "warn" when using axios-retry and this is not the last retry
59
+ if (logLevel === "error" &&
60
+ error.config &&
61
+ "axios-retry" in error.config) {
62
+ const axiosRetryConfig = error.config["axios-retry"];
63
+ if (axiosRetryConfig &&
64
+ typeof axiosRetryConfig === "object" &&
65
+ "retryCount" in axiosRetryConfig &&
66
+ "retries" in axiosRetryConfig &&
67
+ typeof axiosRetryConfig.retryCount === "number" &&
68
+ typeof axiosRetryConfig.retries === "number" &&
69
+ axiosRetryConfig.retryCount < axiosRetryConfig.retries) {
70
+ logLevel = "warn";
73
71
  }
74
- logger.log(logLevel,
75
- // We add the error directly in the message for easy reading
76
- message, {
77
- channel: "axios",
78
- error,
79
- });
80
- // We add back the request and response so that they can be used in catch clauses
81
- error.request = request;
82
- error.response = response;
83
- },
84
- // For axios errors, we want to log the whole server response headers + data
85
- headers: true,
86
- data: true,
87
- });
72
+ }
73
+ logger.log(logLevel,
74
+ // We add the error directly in the message for easy reading
75
+ message, {
76
+ channel: "axios",
77
+ error,
78
+ });
79
+ // We add back the request and response so that they can be used in catch clauses
80
+ error.request = request;
81
+ error.response = response;
82
+ },
83
+ // For axios errors, we want to log the whole server response headers + data
84
+ headers: true,
85
+ data: true,
88
86
  });
89
87
  const axiosLogRequestResponse = (axios, logger) => {
90
88
  axios.interceptors.request.use(AxiosLogger.requestLogger, wrappedErrorLogger(logger));
@@ -108,7 +106,7 @@ const enhanceAxiosModule = (axios, logger) => {
108
106
  const registerAxiosInterceptor = (logger) => {
109
107
  AxiosLogger.setGlobalConfig({
110
108
  logger: (message) => logger.http(message, { channel: "axios" }),
111
- data: false,
109
+ data: false, // whether to include POST data in logs
112
110
  params: true, // whether to include query parameters in logs
113
111
  });
114
112
  enhanceAxiosModule(axios_1.default, logger);
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.2.0../logger"
10
+ "@rf-logger/logger": "0.3.0../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.6.8",
17
+ "axios": "^1.7.4",
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.2.0",
24
+ "version": "0.3.0",
25
25
  "scripts": {
26
26
  "test": "jest",
27
27
  "version": "pnpm version --no-git-tag-version"