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 +1 -1
- package/request/axios-custom-client.js +6 -3
- package/request/interceptors/error.interceptor.d.ts +2 -1
- package/request/interceptors/error.interceptor.js +2 -2
- package/request/interceptors/request.interceptor.d.ts +2 -1
- package/request/interceptors/request.interceptor.js +2 -2
- package/request/interceptors/response.interceptor.d.ts +2 -1
- package/request/interceptors/response.interceptor.js +2 -2
- package/request/loggers/error.logger.d.ts +2 -1
- package/request/loggers/error.logger.js +2 -2
- package/request/loggers/request.logger.d.ts +2 -1
- package/request/loggers/request.logger.js +2 -2
- package/request/loggers/response.logger.d.ts +2 -1
- package/request/loggers/response.logger.js +2 -2
- package/request/types.d.ts +6 -1
package/package.json
CHANGED
|
@@ -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
|
|
13
|
-
axiosApi
|
|
14
|
-
|
|
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;
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
14
|
+
log.error("sm-utility/api-error", { err });
|
|
15
15
|
}
|
|
16
16
|
exports.logError = logError;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
13
|
+
log.info("sm-utility/api-request", { request });
|
|
14
14
|
}
|
|
15
15
|
exports.logRequest = logRequest;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
14
|
+
log.info("sm-utility/api-response", { response });
|
|
15
15
|
}
|
|
16
16
|
exports.logResponse = logResponse;
|
package/request/types.d.ts
CHANGED
|
@@ -7,5 +7,10 @@ declare module 'axios' {
|
|
|
7
7
|
logResponse?: boolean;
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
export type
|
|
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>;
|