sm-utility 2.4.23 → 2.4.24

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sm-utility",
3
- "version": "2.4.23",
3
+ "version": "2.4.24",
4
4
  "description": "reusable utility codes for sm projects",
5
5
  "main": "index.js",
6
6
  "types": "./index.d.ts",
@@ -5,13 +5,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createApi = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
+ const logger_1 = require("../logger");
8
9
  const request_interceptor_1 = require("./interceptors/request.interceptor");
9
10
  const response_interceptor_1 = require("./interceptors/response.interceptor");
10
11
  const error_interceptor_1 = require("./interceptors/error.interceptor");
11
12
  function createApi(axiosConfig) {
12
- const axiosApi = axios_1.default.create(axiosConfig);
13
- axiosApi.interceptors.request.use((0, request_interceptor_1.createRequestInterceptor)(), (0, error_interceptor_1.createErrorInterceptor)());
14
- axiosApi.interceptors.response.use((0, response_interceptor_1.createResponseInterceptor)(), (0, error_interceptor_1.createErrorInterceptor)());
13
+ const { logContext, ...axiosCreateConfig } = axiosConfig || {};
14
+ const axiosApi = axios_1.default.create(axiosCreateConfig);
15
+ const scopedLogger = logContext ? logger_1.logger.child(logContext) : logger_1.logger;
16
+ axiosApi.interceptors.request.use((0, request_interceptor_1.createRequestInterceptor)(scopedLogger), (0, error_interceptor_1.createErrorInterceptor)(scopedLogger));
17
+ axiosApi.interceptors.response.use((0, response_interceptor_1.createResponseInterceptor)(scopedLogger), (0, error_interceptor_1.createErrorInterceptor)(scopedLogger));
15
18
  return axiosApi;
16
19
  }
17
20
  exports.createApi = createApi;
@@ -1,2 +1,3 @@
1
1
  import { AxiosError } from "axios";
2
- export declare function createErrorInterceptor(): (error: AxiosError) => never;
2
+ import type { Logger } from "winston";
3
+ export declare function createErrorInterceptor(log?: Logger): (error: AxiosError) => never;
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createErrorInterceptor = void 0;
4
4
  const loggers_1 = require("../loggers");
5
5
  const utils_1 = require("../utils");
6
- function createErrorInterceptor() {
6
+ function createErrorInterceptor(log) {
7
7
  return (error) => {
8
8
  const { config, message, response } = error;
9
9
  const { method, meta } = config || {};
10
10
  const fullUrl = (0, utils_1.getFullUrlFromConfig)(config);
11
- (0, loggers_1.logError)(meta === null || meta === void 0 ? void 0 : meta.requestId, method, fullUrl, response === null || response === void 0 ? void 0 : response.data, response === null || response === void 0 ? void 0 : response.status, message);
11
+ (0, loggers_1.logError)(meta === null || meta === void 0 ? void 0 : meta.requestId, method, fullUrl, response === null || response === void 0 ? void 0 : response.data, response === null || response === void 0 ? void 0 : response.status, message, log);
12
12
  throw error;
13
13
  };
14
14
  }
@@ -1,2 +1,3 @@
1
1
  import { InternalAxiosRequestConfig } from "axios";
2
- export declare function createRequestInterceptor(): (request: InternalAxiosRequestConfig) => InternalAxiosRequestConfig<any>;
2
+ import type { Logger } from "winston";
3
+ export declare function createRequestInterceptor(log?: Logger): (request: InternalAxiosRequestConfig) => InternalAxiosRequestConfig<any>;
@@ -4,7 +4,7 @@ exports.createRequestInterceptor = void 0;
4
4
  const uuid_1 = require("uuid");
5
5
  const utils_1 = require("../utils");
6
6
  const loggers_1 = require("../loggers");
7
- function createRequestInterceptor() {
7
+ function createRequestInterceptor(log) {
8
8
  return (request) => {
9
9
  if (request === null || request === void 0 ? void 0 : request.logRequest) {
10
10
  const { data, params, method } = request;
@@ -12,7 +12,7 @@ function createRequestInterceptor() {
12
12
  request.meta = request.meta || {};
13
13
  request.meta.requestId = (0, uuid_1.v4)();
14
14
  request.meta.requestStartedAt = new Date().getTime();
15
- (0, loggers_1.logRequest)(request.meta.requestId, method, fullUrl, data, params);
15
+ (0, loggers_1.logRequest)(request.meta.requestId, method, fullUrl, data, params, log);
16
16
  }
17
17
  return request;
18
18
  };
@@ -1,2 +1,3 @@
1
1
  import { AxiosResponse } from "axios";
2
- export declare function createResponseInterceptor(): (response: AxiosResponse) => AxiosResponse<any, any>;
2
+ import type { Logger } from "winston";
3
+ export declare function createResponseInterceptor(log?: Logger): (response: AxiosResponse) => AxiosResponse<any, any>;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createResponseInterceptor = void 0;
4
4
  const loggers_1 = require("../loggers");
5
5
  const utils_1 = require("../utils");
6
- function createResponseInterceptor() {
6
+ function createResponseInterceptor(log) {
7
7
  return (response) => {
8
8
  var _a;
9
9
  if ((_a = response.config) === null || _a === void 0 ? void 0 : _a.logResponse) {
@@ -11,7 +11,7 @@ function createResponseInterceptor() {
11
11
  const { method, meta } = config;
12
12
  const fullUrl = (0, utils_1.getFullUrlFromConfig)(config);
13
13
  const responseTime = (0, utils_1.getResponseTimeFromConfig)(config);
14
- (0, loggers_1.logResponse)(meta === null || meta === void 0 ? void 0 : meta.requestId, method, fullUrl, data, status, responseTime);
14
+ (0, loggers_1.logResponse)(meta === null || meta === void 0 ? void 0 : meta.requestId, method, fullUrl, data, status, responseTime, log);
15
15
  }
16
16
  return response;
17
17
  };
@@ -1 +1,2 @@
1
- export declare function logError(id: string, method: string | undefined, url: string | undefined, data: unknown, status: any, message: any): void;
1
+ import type { Logger } from "winston";
2
+ export declare function logError(id: string, method: string | undefined, url: string | undefined, data: unknown, status: any, message: any, log?: Logger): void;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.logError = void 0;
4
4
  const logger_1 = require("../../logger");
5
- function logError(id, method, url, data, status, message) {
5
+ function logError(id, method, url, data, status, message, log = logger_1.logger) {
6
6
  const err = {
7
7
  ["context-id"]: id,
8
8
  url,
@@ -11,6 +11,6 @@ function logError(id, method, url, data, status, message) {
11
11
  status,
12
12
  message,
13
13
  };
14
- logger_1.logger.error("sm-utility/api-error", { err });
14
+ log.error("sm-utility/api-error", { err });
15
15
  }
16
16
  exports.logError = logError;
@@ -1 +1,2 @@
1
- export declare function logRequest(id: string, method: string | undefined, url: string | undefined, body: unknown, params: string): void;
1
+ import type { Logger } from "winston";
2
+ export declare function logRequest(id: string, method: string | undefined, url: string | undefined, body: unknown, params: string, log?: Logger): void;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.logRequest = void 0;
4
4
  const logger_1 = require("../../logger");
5
- function logRequest(id, method, url, body, params) {
5
+ function logRequest(id, method, url, body, params, log = logger_1.logger) {
6
6
  const request = {
7
7
  ["context-id"]: id,
8
8
  url,
@@ -10,6 +10,6 @@ function logRequest(id, method, url, body, params) {
10
10
  params,
11
11
  body,
12
12
  };
13
- logger_1.logger.info("sm-utility/api-request", { request });
13
+ log.info("sm-utility/api-request", { request });
14
14
  }
15
15
  exports.logRequest = logRequest;
@@ -1 +1,2 @@
1
- export declare function logResponse(id: string, method: string | undefined, url: string | undefined, body: unknown, status: any, responseTime: string): void;
1
+ import type { Logger } from "winston";
2
+ export declare function logResponse(id: string, method: string | undefined, url: string | undefined, body: unknown, status: any, responseTime: string, log?: Logger): void;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.logResponse = void 0;
4
4
  const logger_1 = require("../../logger");
5
- function logResponse(id, method, url, body, status, responseTime) {
5
+ function logResponse(id, method, url, body, status, responseTime, log = logger_1.logger) {
6
6
  const response = {
7
7
  ["context-id"]: id,
8
8
  url,
@@ -11,6 +11,6 @@ function logResponse(id, method, url, body, status, responseTime) {
11
11
  status,
12
12
  responseTime,
13
13
  };
14
- logger_1.logger.info("sm-utility/api-response", { response });
14
+ log.info("sm-utility/api-response", { response });
15
15
  }
16
16
  exports.logResponse = logResponse;
@@ -7,5 +7,10 @@ declare module 'axios' {
7
7
  logResponse?: boolean;
8
8
  }
9
9
  }
10
- export type CustomClientCreateApiParams = Omit<AxiosRequestConfig, 'meta'>;
10
+ export type LoggerContext = {
11
+ trace_id: string;
12
+ } & Record<string, any>;
13
+ export type CustomClientCreateApiParams = Omit<AxiosRequestConfig, 'meta'> & {
14
+ logContext?: LoggerContext;
15
+ };
11
16
  export type SmAxiosInstance = ReturnType<typeof createApi>;