@yolo-croket-dev/core 1.4.48 → 1.4.50
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/functions/amqp-call-manager.function.js +25 -5
- package/functions/amqp-publish.function.js +27 -11
- package/interceptors/logging-service.interceptor.js +2 -2
- package/interceptors/rpc.interceptor.d.ts +0 -1
- package/interceptors/rpc.interceptor.js +49 -57
- package/interfaces/exception.js +3 -3
- package/modules/redis.module.js +2 -2
- package/package.json +2 -2
- package/pipes/rpc-validation.pipe.js +2 -2
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
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;
|
|
4
24
|
};
|
|
5
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
26
|
exports.AmqpManagement = void 0;
|
|
7
|
-
const
|
|
27
|
+
const msa_logger_1 = __importStar(require("@yolo-croket-dev/msa-logger"));
|
|
8
28
|
const _1 = require(".");
|
|
9
|
-
const
|
|
29
|
+
const msaLogger = new msa_logger_1.default(msa_logger_1.ServerTypeEnum.SERVICE);
|
|
10
30
|
class AmqpManagement {
|
|
11
31
|
constructor(client) {
|
|
12
32
|
this.client = client;
|
|
@@ -37,7 +57,7 @@ class AmqpManagement {
|
|
|
37
57
|
return result.data;
|
|
38
58
|
}
|
|
39
59
|
catch (err) {
|
|
40
|
-
|
|
60
|
+
msaLogger.error(`ThrowWrapppingCall[${funcName}] error: traceId=${param.traceId}`, { traceId: param.traceId }, { param });
|
|
41
61
|
if (options && options.isErrorThrowing) {
|
|
42
62
|
throw err;
|
|
43
63
|
}
|
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
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;
|
|
4
24
|
};
|
|
5
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
26
|
exports.AmqpPublish = void 0;
|
|
7
|
-
const
|
|
27
|
+
const msa_logger_1 = __importStar(require("@yolo-croket-dev/msa-logger"));
|
|
8
28
|
const _1 = require(".");
|
|
9
|
-
const
|
|
29
|
+
const msaLogger = new msa_logger_1.default(msa_logger_1.ServerTypeEnum.SERVICE);
|
|
10
30
|
// eslint-disable-next-line max-len
|
|
11
31
|
async function AmqpPublish(client, messagePattern, payload, message) {
|
|
12
32
|
return new Promise((resolve, reject) => {
|
|
@@ -23,12 +43,10 @@ async function AmqpPublish(client, messagePattern, payload, message) {
|
|
|
23
43
|
subscribeValue.unsubscribe();
|
|
24
44
|
const { isError } = value;
|
|
25
45
|
if (isError) {
|
|
26
|
-
const result = {
|
|
27
|
-
...value,
|
|
28
|
-
};
|
|
46
|
+
const result = { ...value };
|
|
29
47
|
const status = result.status || 500;
|
|
30
48
|
const subMessage = result.subMessage;
|
|
31
|
-
|
|
49
|
+
msaLogger.error(`Pattern=${messagePattern}:`, { traceId: '-' }, result.arg);
|
|
32
50
|
delete result.isError;
|
|
33
51
|
delete result.status;
|
|
34
52
|
delete result.arg;
|
|
@@ -36,9 +54,7 @@ async function AmqpPublish(client, messagePattern, payload, message) {
|
|
|
36
54
|
reject(new _1.HttpExceptionCustom(result, status, subMessage));
|
|
37
55
|
}
|
|
38
56
|
else {
|
|
39
|
-
const result = {
|
|
40
|
-
...value,
|
|
41
|
-
};
|
|
57
|
+
const result = { ...value };
|
|
42
58
|
delete result.isError;
|
|
43
59
|
resolve(result);
|
|
44
60
|
}
|
|
@@ -117,7 +117,7 @@ let LoggingServiceInterceptor = class LoggingServiceInterceptor {
|
|
|
117
117
|
}));
|
|
118
118
|
}
|
|
119
119
|
};
|
|
120
|
-
LoggingServiceInterceptor =
|
|
120
|
+
exports.LoggingServiceInterceptor = LoggingServiceInterceptor;
|
|
121
|
+
exports.LoggingServiceInterceptor = LoggingServiceInterceptor = __decorate([
|
|
121
122
|
(0, common_1.Injectable)()
|
|
122
123
|
], LoggingServiceInterceptor);
|
|
123
|
-
exports.LoggingServiceInterceptor = LoggingServiceInterceptor;
|
|
@@ -6,6 +6,5 @@ export declare class RPCInterceptor implements NestInterceptor {
|
|
|
6
6
|
constructor(reflector: Reflector);
|
|
7
7
|
private maxLengthOverShorten;
|
|
8
8
|
private updateMaxLengthArrayShorten;
|
|
9
|
-
private keyCutter;
|
|
10
9
|
intercept(context: ExecutionContext, next: CallHandler): Promise<Observable<unknown>>;
|
|
11
10
|
}
|
|
@@ -8,9 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.RPCInterceptor = void 0;
|
|
16
13
|
/* eslint-disable no-param-reassign */
|
|
@@ -18,11 +15,10 @@ const common_1 = require("@nestjs/common");
|
|
|
18
15
|
const core_1 = require("@nestjs/core");
|
|
19
16
|
const rxjs_1 = require("rxjs");
|
|
20
17
|
const operators_1 = require("rxjs/operators");
|
|
21
|
-
|
|
18
|
+
// import Logger from '@yolo-croket-dev/logger';
|
|
22
19
|
const functions_1 = require("../functions");
|
|
23
20
|
const exceptions_1 = require("../exceptions");
|
|
24
|
-
const
|
|
25
|
-
const MAX_CUT_LENGTH = 500;
|
|
21
|
+
// const MAX_CUT_LENGTH = 500;
|
|
26
22
|
const MAX_LENGTH = 300;
|
|
27
23
|
let RPCInterceptor = class RPCInterceptor {
|
|
28
24
|
constructor(reflector) {
|
|
@@ -83,36 +79,32 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
83
79
|
}
|
|
84
80
|
return obj;
|
|
85
81
|
}
|
|
86
|
-
keyCutter(data) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return data;
|
|
115
|
-
}
|
|
82
|
+
// private keyCutter(data: string) {
|
|
83
|
+
// try {
|
|
84
|
+
// if (data) {
|
|
85
|
+
// data = JSON.parse(data);
|
|
86
|
+
// } else {
|
|
87
|
+
// return data;
|
|
88
|
+
// }
|
|
89
|
+
// } catch (err) {
|
|
90
|
+
// return data;
|
|
91
|
+
// }
|
|
92
|
+
// for (const key of Object.keys(data)) {
|
|
93
|
+
// const type = typeof data[key as any];
|
|
94
|
+
// if (type === 'string') {
|
|
95
|
+
// if (data[key as any].length > MAX_CUT_LENGTH) {
|
|
96
|
+
// (data[key as any] as any) = `${data[key as any].slice(0, MAX_CUT_LENGTH)}...`;
|
|
97
|
+
// }
|
|
98
|
+
// } else if (type === 'object') {
|
|
99
|
+
// if (data[key as any] === null) {
|
|
100
|
+
// (data[key as any] as any) = null;
|
|
101
|
+
// } else {
|
|
102
|
+
// (data[key as any] as any) = this.keyCutter(data[key as any]);
|
|
103
|
+
// }
|
|
104
|
+
// }
|
|
105
|
+
// }
|
|
106
|
+
// return data;
|
|
107
|
+
// }
|
|
116
108
|
async intercept(context, next) {
|
|
117
109
|
var _a;
|
|
118
110
|
const options = this.reflector.get('rpcInterceptorScope', context.getHandler());
|
|
@@ -123,16 +115,16 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
123
115
|
const message = rmq.getMessage();
|
|
124
116
|
const now = Date.now();
|
|
125
117
|
const content = JSON.parse(message.content.toString());
|
|
126
|
-
const traceId = content.data.param ? content.data.param.traceId : null;
|
|
118
|
+
// const traceId = content.data.param ? content.data.param.traceId : null;
|
|
127
119
|
const isInternal = content.data.param ? content.data.param.isInternal : false;
|
|
128
120
|
const isAdmin = content.data.param ? content.data.param.isAdmin : false;
|
|
129
|
-
const method = content.pattern;
|
|
121
|
+
// const method = content.pattern;
|
|
130
122
|
const reDeliveryCount = Number(message.properties.headers['x-delivery-count']) || 0; /** 몇번 재전달되었는지 */
|
|
131
123
|
const staticRetryCount = Number(options === null || options === void 0 ? void 0 : options.messageRetryCount) || 0; /** 최대 재시도 갯수 */
|
|
132
|
-
const logParam = {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
};
|
|
124
|
+
// const logParam = {
|
|
125
|
+
// traceId,
|
|
126
|
+
// method,
|
|
127
|
+
// };
|
|
136
128
|
if (!staticRetryCount && reDeliveryCount > 0) {
|
|
137
129
|
channel.nack(message, false, false); /** 아마도 기본 30분 타임아웃이 지나고 새로 들어오면 발생할 예정, DLQ로 이동 */
|
|
138
130
|
message.properties.replyTo = undefined; /** replyTo가 존재하면 sendToQueue가 호출되므로, 삭제해주기 */
|
|
@@ -190,11 +182,11 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
190
182
|
const messageContent = message.content.toString();
|
|
191
183
|
/** 파일 객체 처리 */
|
|
192
184
|
(0, functions_1.reWriteFileValue)((_a = messageContent === null || messageContent === void 0 ? void 0 : messageContent.data) === null || _a === void 0 ? void 0 : _a.file);
|
|
193
|
-
logger.debug(`<= (error:${traceId}): ${JSON.stringify(sendMessage.toString())}`, {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
});
|
|
185
|
+
// logger.debug(`<= (error:${traceId}): ${JSON.stringify(sendMessage.toString())}`, {
|
|
186
|
+
// ...logParam,
|
|
187
|
+
// duration,
|
|
188
|
+
// isError: true,
|
|
189
|
+
// });
|
|
198
190
|
if (!noAck && !isAck) {
|
|
199
191
|
channel.ack(message);
|
|
200
192
|
}
|
|
@@ -226,10 +218,10 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
226
218
|
if (content.data.payload.file) {
|
|
227
219
|
content.data.payload.file = `${content.data.payload.file.slice(0, 30)}...`;
|
|
228
220
|
}
|
|
229
|
-
logger.debug(`=> (${traceId}): ${JSON.stringify(this.keyCutter(JSON.stringify(content)))}`);
|
|
221
|
+
// logger.debug(`=> (${traceId}): ${JSON.stringify(this.keyCutter(JSON.stringify(content)))}`);
|
|
230
222
|
}
|
|
231
223
|
else {
|
|
232
|
-
logger.debug(`=> (${traceId}): ${JSON.stringify(this.keyCutter(JSON.stringify(content)))}`);
|
|
224
|
+
// logger.debug(`=> (${traceId}): ${JSON.stringify(this.keyCutter(JSON.stringify(content)))}`);
|
|
233
225
|
}
|
|
234
226
|
// eslint-disable-next-line consistent-return
|
|
235
227
|
return next
|
|
@@ -237,12 +229,12 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
237
229
|
.pipe((0, operators_1.tap)({
|
|
238
230
|
next: async (val) => {
|
|
239
231
|
val.isError = false;
|
|
240
|
-
const duration = Date.now() - now;
|
|
241
|
-
logger.debug(`<= (success:${traceId}): ${val.message}`, {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
});
|
|
232
|
+
// const duration = Date.now() - now;
|
|
233
|
+
// logger.debug(`<= (success:${traceId}): ${val.message}`, {
|
|
234
|
+
// ...logParam,
|
|
235
|
+
// duration,
|
|
236
|
+
// isError: val.isError,
|
|
237
|
+
// });
|
|
246
238
|
/** 만약 응답데이터중 isRequeue가 true라면, 다시 재처리 하도록 함 */
|
|
247
239
|
if (val.data && val.data.isRequeue) {
|
|
248
240
|
channel.nack(message, false, true);
|
|
@@ -256,8 +248,8 @@ let RPCInterceptor = class RPCInterceptor {
|
|
|
256
248
|
}));
|
|
257
249
|
}
|
|
258
250
|
};
|
|
259
|
-
RPCInterceptor =
|
|
251
|
+
exports.RPCInterceptor = RPCInterceptor;
|
|
252
|
+
exports.RPCInterceptor = RPCInterceptor = __decorate([
|
|
260
253
|
(0, common_1.Injectable)(),
|
|
261
254
|
__metadata("design:paramtypes", [core_1.Reflector])
|
|
262
255
|
], RPCInterceptor);
|
|
263
|
-
exports.RPCInterceptor = RPCInterceptor;
|
package/interfaces/exception.js
CHANGED
|
@@ -18,9 +18,10 @@ var ErrActionTypeEnum;
|
|
|
18
18
|
ErrActionTypeEnum["LEGACY_SHOW_TOAST"] = "LEGACY_SHOW_TOAST";
|
|
19
19
|
ErrActionTypeEnum["FORCE_UPDATE"] = "FORCE_UPDATE";
|
|
20
20
|
ErrActionTypeEnum["UPDATE_ACCESS_TOKEN"] = "UPDATE_ACCESS_TOKEN";
|
|
21
|
-
})(ErrActionTypeEnum
|
|
21
|
+
})(ErrActionTypeEnum || (exports.ErrActionTypeEnum = ErrActionTypeEnum = {}));
|
|
22
22
|
class ErrAction {
|
|
23
23
|
}
|
|
24
|
+
exports.ErrAction = ErrAction;
|
|
24
25
|
__decorate([
|
|
25
26
|
(0, swagger_1.ApiProperty)({
|
|
26
27
|
description: '액션 타입',
|
|
@@ -57,9 +58,9 @@ __decorate([
|
|
|
57
58
|
}),
|
|
58
59
|
__metadata("design:type", String)
|
|
59
60
|
], ErrAction.prototype, "webViewUrl", void 0);
|
|
60
|
-
exports.ErrAction = ErrAction;
|
|
61
61
|
class ErrInfo {
|
|
62
62
|
}
|
|
63
|
+
exports.ErrInfo = ErrInfo;
|
|
63
64
|
__decorate([
|
|
64
65
|
(0, swagger_1.ApiProperty)({
|
|
65
66
|
description: '에러 종류 식별자',
|
|
@@ -81,4 +82,3 @@ __decorate([
|
|
|
81
82
|
}),
|
|
82
83
|
__metadata("design:type", ErrAction)
|
|
83
84
|
], ErrInfo.prototype, "action", void 0);
|
|
84
|
-
exports.ErrInfo = ErrInfo;
|
package/modules/redis.module.js
CHANGED
|
@@ -15,10 +15,10 @@ const redisProvider = {
|
|
|
15
15
|
};
|
|
16
16
|
let RedisModule = class RedisModule {
|
|
17
17
|
};
|
|
18
|
-
RedisModule =
|
|
18
|
+
exports.RedisModule = RedisModule;
|
|
19
|
+
exports.RedisModule = RedisModule = __decorate([
|
|
19
20
|
(0, common_1.Module)({
|
|
20
21
|
providers: [redisProvider],
|
|
21
22
|
exports: [redisProvider],
|
|
22
23
|
})
|
|
23
24
|
], RedisModule);
|
|
24
|
-
exports.RedisModule = RedisModule;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yolo-croket-dev/core",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.50",
|
|
4
4
|
"author": "Yolo Co., Ltd.",
|
|
5
5
|
"description": "Yolo commonization module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@nestjs/common": "^8.2.3",
|
|
18
18
|
"@nestjs/microservices": "9.0.8",
|
|
19
|
-
"@yolo-croket-dev/logger": "^1.0.
|
|
19
|
+
"@yolo-croket-dev/logger": "^1.0.15",
|
|
20
20
|
"@yolo-croket-dev/redis": "^1.0.22",
|
|
21
21
|
"@yolo-croket-dev/swagger": "^0.0.7",
|
|
22
22
|
"axios": "^1.1.3",
|
|
@@ -31,8 +31,8 @@ let ValidationPipe = class ValidationPipe {
|
|
|
31
31
|
return value;
|
|
32
32
|
}
|
|
33
33
|
};
|
|
34
|
-
ValidationPipe =
|
|
34
|
+
exports.ValidationPipe = ValidationPipe;
|
|
35
|
+
exports.ValidationPipe = ValidationPipe = __decorate([
|
|
35
36
|
(0, common_1.Injectable)(),
|
|
36
37
|
__metadata("design:paramtypes", [Object])
|
|
37
38
|
], ValidationPipe);
|
|
38
|
-
exports.ValidationPipe = ValidationPipe;
|