sm-utility 2.2.17 → 2.3.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sm-utility",
3
- "version": "2.2.17",
3
+ "version": "2.3.1",
4
4
  "description": "reusable utility codes for sm projects",
5
5
  "main": "index.js",
6
6
  "types": "./index.d.ts",
@@ -28,7 +28,7 @@
28
28
  "dependencies": {
29
29
  "@elastic/ecs-winston-format": "^1.3.1",
30
30
  "aws-sdk": "^2.1134.0",
31
- "axios": "^0.23.0",
31
+ "axios": "^1.6.8",
32
32
  "express-winston": "^4.1.0",
33
33
  "nanoid": "^3.3.6",
34
34
  "node-xlsx": "^0.23.0",
@@ -0,0 +1,3 @@
1
+ import { AxiosInstance } from 'axios';
2
+ import { CustomClientCreateApiParams } from './types';
3
+ export declare function createApi(axiosConfig?: CustomClientCreateApiParams): AxiosInstance;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createApi = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const uuid_1 = require("uuid");
9
+ const logger_1 = require("../logger");
10
+ function createApi(axiosConfig) {
11
+ const axiosApi = axios_1.default.create(axiosConfig);
12
+ axiosApi.interceptors.request.use();
13
+ axiosApi.interceptors.request.use((request) => {
14
+ if (request === null || request === void 0 ? void 0 : request.logRequest) {
15
+ const { data, params, method } = request;
16
+ const fullUrl = getFullUrlFromConfig(request);
17
+ request.meta = request.meta || {};
18
+ request.meta.requestId = uuid_1.v4();
19
+ request.meta.requestStartedAt = new Date().getTime();
20
+ logRequest(request.meta.requestId, method, fullUrl, data, params);
21
+ }
22
+ return request;
23
+ }, (error) => {
24
+ const { config, message, response } = error;
25
+ const { method, meta } = config || {};
26
+ const fullUrl = getFullUrlFromConfig(config);
27
+ 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);
28
+ throw error;
29
+ });
30
+ axiosApi.interceptors.response.use((response) => {
31
+ var _a;
32
+ if ((_a = response.config) === null || _a === void 0 ? void 0 : _a.logResponse) {
33
+ const { status, data, config } = response;
34
+ const { method, meta } = config;
35
+ const fullUrl = getFullUrlFromConfig(config);
36
+ const responseTime = getResponseTimeFromConfig(config);
37
+ logResponse(meta === null || meta === void 0 ? void 0 : meta.requestId, method, fullUrl, data, status, responseTime);
38
+ }
39
+ return response;
40
+ }, (error) => {
41
+ const { config, message, response } = error;
42
+ const { method, meta } = config || {};
43
+ const fullUrl = getFullUrlFromConfig(config);
44
+ 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);
45
+ throw error;
46
+ });
47
+ return axiosApi;
48
+ }
49
+ exports.createApi = createApi;
50
+ function logRequest(id, method, url, body, params) {
51
+ const request = {
52
+ ['context-id']: id,
53
+ url,
54
+ method: method === null || method === void 0 ? void 0 : method.toUpperCase(),
55
+ params,
56
+ body
57
+ };
58
+ logger_1.logger.info('sm-utility/api-request', { request });
59
+ }
60
+ function logResponse(id, method, url, body, status, responseTime) {
61
+ const response = {
62
+ ['context-id']: id,
63
+ url,
64
+ method: method === null || method === void 0 ? void 0 : method.toUpperCase(),
65
+ body,
66
+ status,
67
+ responseTime
68
+ };
69
+ logger_1.logger.info('sm-utility/api-response', { response });
70
+ }
71
+ function logError(id, method, url, data, status, message) {
72
+ const err = {
73
+ ['context-id']: id,
74
+ url,
75
+ method: method === null || method === void 0 ? void 0 : method.toUpperCase(),
76
+ data,
77
+ status,
78
+ message
79
+ };
80
+ logger_1.logger.error('sm-utility/api-error', { err });
81
+ }
82
+ function getResponseTimeFromConfig(config) {
83
+ var _a;
84
+ const requestStart = (_a = config === null || config === void 0 ? void 0 : config.meta) === null || _a === void 0 ? void 0 : _a.requestStartedAt;
85
+ let responseTime = '-';
86
+ if (requestStart) {
87
+ responseTime = String(new Date().getTime() - requestStart);
88
+ }
89
+ return responseTime + ' ms';
90
+ }
91
+ function getFullUrlFromConfig(config) {
92
+ const { baseURL, url } = config || {};
93
+ const fullUrl = baseURL && url ? new String().concat(baseURL, url) : '';
94
+ return fullUrl;
95
+ }
@@ -1,9 +1,2 @@
1
- import { AxiosInstance, AxiosRequestConfig } from 'axios';
2
- declare module 'axios' {
3
- interface AxiosRequestConfig {
4
- meta?: Record<string, any>;
5
- logRequest?: boolean;
6
- logResponse?: boolean;
7
- }
8
- }
9
- export declare function createApi(axiosConfig?: Omit<AxiosRequestConfig, "meta">): AxiosInstance;
1
+ export * from './axios-custom-client';
2
+ export * from './types';
package/request/index.js CHANGED
@@ -1,88 +1,14 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
4
11
  };
5
12
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createApi = void 0;
7
- const axios_1 = __importDefault(require("axios"));
8
- const uuid_1 = require("uuid");
9
- const logger_1 = require("../logger");
10
- function createApi(axiosConfig) {
11
- const axiosApi = axios_1.default.create(axiosConfig);
12
- axiosApi.interceptors.request.use((request) => {
13
- if (request === null || request === void 0 ? void 0 : request.logRequest) {
14
- const { data, params, method } = request;
15
- const fullUrl = getFullUrlFromConfig(request);
16
- request.meta = request.meta || {};
17
- request.meta.requestId = uuid_1.v4();
18
- request.meta.requestStartedAt = new Date().getTime();
19
- logRequest(request.meta.requestId, method, fullUrl, data, params);
20
- }
21
- return request;
22
- });
23
- axiosApi.interceptors.response.use((response) => {
24
- var _a;
25
- if ((_a = response.config) === null || _a === void 0 ? void 0 : _a.logResponse) {
26
- const { status, data, config } = response;
27
- const { method, meta } = config;
28
- const fullUrl = getFullUrlFromConfig(config);
29
- const responseTime = getResponseTimeFromConfig(config);
30
- logResponse(meta === null || meta === void 0 ? void 0 : meta.requestId, method, fullUrl, data, status, responseTime);
31
- }
32
- return response;
33
- }, (error) => {
34
- const { config, message, response } = error;
35
- const { method, meta } = config;
36
- const fullUrl = getFullUrlFromConfig(config);
37
- 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);
38
- throw error;
39
- });
40
- return axiosApi;
41
- }
42
- exports.createApi = createApi;
43
- function logRequest(id, method, url, body, params) {
44
- const request = {
45
- ['context-id']: id,
46
- url,
47
- method: method === null || method === void 0 ? void 0 : method.toUpperCase(),
48
- params,
49
- body
50
- };
51
- logger_1.logger.info('sm-utility/api-request', { request });
52
- }
53
- function logResponse(id, method, url, body, status, responseTime) {
54
- const response = {
55
- ['context-id']: id,
56
- url,
57
- method: method === null || method === void 0 ? void 0 : method.toUpperCase(),
58
- body,
59
- status,
60
- responseTime
61
- };
62
- logger_1.logger.info('sm-utility/api-response', { response });
63
- }
64
- function logError(id, method, url, data, status, message) {
65
- const err = {
66
- ['context-id']: id,
67
- url,
68
- method: method === null || method === void 0 ? void 0 : method.toUpperCase(),
69
- data,
70
- status,
71
- message
72
- };
73
- logger_1.logger.error('sm-utility/api-error', { err });
74
- }
75
- function getResponseTimeFromConfig(config) {
76
- var _a;
77
- const requestStart = (_a = config === null || config === void 0 ? void 0 : config.meta) === null || _a === void 0 ? void 0 : _a.requestStartedAt;
78
- let responseTime = '-';
79
- if (requestStart) {
80
- responseTime = String(new Date().getTime() - requestStart);
81
- }
82
- return responseTime + ' ms';
83
- }
84
- function getFullUrlFromConfig(config) {
85
- const { baseURL, url } = config;
86
- const fullUrl = baseURL && url ? new String().concat(baseURL, url) : '';
87
- return fullUrl;
88
- }
13
+ __exportStar(require("./axios-custom-client"), exports);
14
+ __exportStar(require("./types"), exports);
@@ -0,0 +1,11 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ import { createApi } from './axios-custom-client';
3
+ declare module 'axios' {
4
+ interface AxiosRequestConfig {
5
+ meta?: Record<string, any>;
6
+ logRequest?: boolean;
7
+ logResponse?: boolean;
8
+ }
9
+ }
10
+ export declare type CustomClientCreateApiParams = Omit<AxiosRequestConfig, 'meta'>;
11
+ export declare type AxiosInstance = ReturnType<typeof createApi>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });