@mondart/nestjs-common-module-core 3.2.1 → 3.2.2
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/dist/dto/response/success-response.dto.d.ts.map +1 -1
- package/dist/dto/response/success-response.dto.js +13 -2
- package/dist/dto/response/success-response.dto.js.map +1 -1
- package/dist/filters/global-exception.filter.d.ts +1 -4
- package/dist/filters/global-exception.filter.d.ts.map +1 -1
- package/dist/filters/global-exception.filter.js +25 -48
- package/dist/filters/global-exception.filter.js.map +1 -1
- package/dist/helpers/i18n-message.helper.d.ts +9 -0
- package/dist/helpers/i18n-message.helper.d.ts.map +1 -0
- package/dist/helpers/i18n-message.helper.js +52 -0
- package/dist/helpers/i18n-message.helper.js.map +1 -0
- package/dist/helpers/index.d.ts +1 -0
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js +1 -0
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/rxjs-catch-error.helper.d.ts.map +1 -1
- package/dist/helpers/rxjs-catch-error.helper.js +17 -4
- package/dist/helpers/rxjs-catch-error.helper.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"success-response.dto.d.ts","sourceRoot":"","sources":["../../../src/dto/response/success-response.dto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"success-response.dto.d.ts","sourceRoot":"","sources":["../../../src/dto/response/success-response.dto.ts"],"names":[],"mappings":"AAIA,qBAAa,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAEvD,IAAI,EAAE,QAAQ,CAAC;IAGf,QAAQ,EAAE,QAAQ,CAAC;IAGnB,OAAO,EAAE,MAAM,CAAC;IAGhB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAe,CAC1B,QAAQ,EACR,QAAQ,GAAG,GAAG,CACd,SAAQ,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAE7C,IAAI,EAAE,QAAQ,EACd,OAAO,GAAE,MAAa,EACtB,MAAM,SAAM,EACZ,QAAQ,GAAE,QAAe;CAoB5B"}
|
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.SuccessResponse = exports.BaseSuccessResponse = void 0;
|
|
13
13
|
const swagger_1 = require("@nestjs/swagger");
|
|
14
14
|
const enums_1 = require("../../enums");
|
|
15
|
+
const helpers_1 = require("../../helpers");
|
|
15
16
|
class BaseSuccessResponse {
|
|
16
17
|
}
|
|
17
18
|
exports.BaseSuccessResponse = BaseSuccessResponse;
|
|
@@ -34,10 +35,20 @@ __decorate([
|
|
|
34
35
|
class SuccessResponse extends BaseSuccessResponse {
|
|
35
36
|
constructor(data, message = null, status = 200, metadata = null) {
|
|
36
37
|
super();
|
|
38
|
+
const messageKey = helpers_1.I18nMessageHelper.extractKey(message);
|
|
37
39
|
this.data = data;
|
|
38
|
-
this.message = message;
|
|
40
|
+
this.message = helpers_1.I18nMessageHelper.translate(message);
|
|
39
41
|
this.status = status;
|
|
40
|
-
this.metadata =
|
|
42
|
+
this.metadata = messageKey
|
|
43
|
+
? {
|
|
44
|
+
...(metadata &&
|
|
45
|
+
typeof metadata === 'object' &&
|
|
46
|
+
!Array.isArray(metadata)
|
|
47
|
+
? metadata
|
|
48
|
+
: {}),
|
|
49
|
+
messageKey,
|
|
50
|
+
}
|
|
51
|
+
: metadata;
|
|
41
52
|
}
|
|
42
53
|
}
|
|
43
54
|
exports.SuccessResponse = SuccessResponse;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"success-response.dto.js","sourceRoot":"","sources":["../../../src/dto/response/success-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,uCAA6C;
|
|
1
|
+
{"version":3,"file":"success-response.dto.js","sourceRoot":"","sources":["../../../src/dto/response/success-response.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,uCAA6C;AAC7C,2CAAkD;AAElD,MAAa,mBAAmB;CAY/B;AAZD,kDAYC;AAVC;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;iDACf;AAGf;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qDACX;AAGnB;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAc,CAAC,UAAU,EAAE,CAAC;;oDAClD;AAGhB;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;;mDAC7B;AAGjB,MAAa,eAGX,SAAQ,mBAAuC;IAC/C,YACE,IAAc,EACd,UAAkB,IAAI,EACtB,MAAM,GAAG,GAAG,EACZ,WAAqB,IAAI;QAEzB,KAAK,EAAE,CAAC;QAER,MAAM,UAAU,GAAG,2BAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEzD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,2BAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,UAAU;YACxB,CAAC,CAAE;gBACC,GAAG,CAAC,QAAQ;oBACZ,OAAO,QAAQ,KAAK,QAAQ;oBAC5B,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;oBACtB,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,EAAE,CAAC;gBACP,UAAU;aACE;YAChB,CAAC,CAAC,QAAQ,CAAC;IACf,CAAC;CACF;AA5BD,0CA4BC"}
|
|
@@ -7,10 +7,7 @@ export declare class GlobalExceptionFilter implements ExceptionFilter {
|
|
|
7
7
|
catch(exception: any, host: ArgumentsHost): import("rxjs").Observable<never> | Response<any, Record<string, any>>;
|
|
8
8
|
private isObject;
|
|
9
9
|
private isArray;
|
|
10
|
+
private attachRpcCause;
|
|
10
11
|
private translateException;
|
|
11
|
-
private translateMessages;
|
|
12
|
-
private translateMessage;
|
|
13
|
-
private extractMessageKeys;
|
|
14
|
-
private extractMessageKey;
|
|
15
12
|
}
|
|
16
13
|
//# sourceMappingURL=global-exception.filter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-exception.filter.d.ts","sourceRoot":"","sources":["../../src/filters/global-exception.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,eAAe,EAIhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"global-exception.filter.d.ts","sourceRoot":"","sources":["../../src/filters/global-exception.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,eAAe,EAIhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAcnC,qBACa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEpB;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAE3B,YAAY,GAAE,OAAe;IAIzC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa;IAoHzC,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,kBAAkB;CAiC3B"}
|
|
@@ -84,11 +84,15 @@ let GlobalExceptionFilter = class GlobalExceptionFilter {
|
|
|
84
84
|
...customExceptionsArray,
|
|
85
85
|
].map((exception) => exception.name);
|
|
86
86
|
if (type === 'rpc') {
|
|
87
|
+
this.attachRpcCause(exception, messageKey);
|
|
87
88
|
if (exceptionsName.includes(exception.name)) {
|
|
88
89
|
return (0, rxjs_1.throwError)(exception);
|
|
89
90
|
}
|
|
90
91
|
else {
|
|
91
|
-
const internalServerErrorException = new common_1.InternalServerErrorException(exception
|
|
92
|
+
const internalServerErrorException = new common_1.InternalServerErrorException(exception, {
|
|
93
|
+
cause: messageKey ?? exception?.cause,
|
|
94
|
+
});
|
|
95
|
+
this.attachRpcCause(internalServerErrorException, messageKey);
|
|
92
96
|
return (0, rxjs_1.throwError)(internalServerErrorException);
|
|
93
97
|
}
|
|
94
98
|
}
|
|
@@ -148,68 +152,41 @@ let GlobalExceptionFilter = class GlobalExceptionFilter {
|
|
|
148
152
|
isArray(value) {
|
|
149
153
|
return value !== null && typeof value === 'object' && Array.isArray(value);
|
|
150
154
|
}
|
|
155
|
+
attachRpcCause(exception, messageKey) {
|
|
156
|
+
if (!messageKey)
|
|
157
|
+
return;
|
|
158
|
+
exception.cause = messageKey;
|
|
159
|
+
const response = exception?.getResponse?.();
|
|
160
|
+
if (response && typeof response === 'object') {
|
|
161
|
+
response.cause = messageKey;
|
|
162
|
+
}
|
|
163
|
+
else if (typeof response === 'string') {
|
|
164
|
+
exception.response = {
|
|
165
|
+
message: response,
|
|
166
|
+
cause: messageKey,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
}
|
|
151
170
|
translateException(exception, host) {
|
|
152
171
|
const i18n = nestjs_i18n_1.I18nContext.current(host) ?? nestjs_i18n_1.I18nContext.current();
|
|
153
172
|
if (!i18n)
|
|
154
173
|
return undefined;
|
|
155
174
|
const response = exception?.getResponse?.();
|
|
156
175
|
const responseMessage = typeof response === 'string' ? response : response?.message;
|
|
157
|
-
const messageKey =
|
|
158
|
-
|
|
176
|
+
const messageKey = helpers_1.I18nMessageHelper.extractKeys(responseMessage) ??
|
|
177
|
+
helpers_1.I18nMessageHelper.extractKeys(exception?.message);
|
|
159
178
|
if (typeof response === 'string') {
|
|
160
|
-
exception.response =
|
|
179
|
+
exception.response = helpers_1.I18nMessageHelper.translate(response, i18n);
|
|
161
180
|
}
|
|
162
181
|
else if (typeof response?.message === 'string' ||
|
|
163
182
|
Array.isArray(response?.message)) {
|
|
164
|
-
response.message =
|
|
183
|
+
response.message = helpers_1.I18nMessageHelper.translateMany(response.message, i18n);
|
|
165
184
|
}
|
|
166
185
|
if (typeof exception?.message === 'string') {
|
|
167
|
-
exception.message =
|
|
186
|
+
exception.message = helpers_1.I18nMessageHelper.translate(exception.message, i18n);
|
|
168
187
|
}
|
|
169
188
|
return messageKey;
|
|
170
189
|
}
|
|
171
|
-
translateMessages(messages, i18n) {
|
|
172
|
-
return Array.isArray(messages)
|
|
173
|
-
? messages.map((message) => this.translateMessage(message, i18n))
|
|
174
|
-
: this.translateMessage(messages, i18n);
|
|
175
|
-
}
|
|
176
|
-
translateMessage(message, i18n) {
|
|
177
|
-
const separatorIndex = message.indexOf('|');
|
|
178
|
-
const key = this.extractMessageKey(message);
|
|
179
|
-
if (!key)
|
|
180
|
-
return message;
|
|
181
|
-
let args = {};
|
|
182
|
-
if (separatorIndex !== -1) {
|
|
183
|
-
try {
|
|
184
|
-
args = JSON.parse(message.slice(separatorIndex + 1));
|
|
185
|
-
}
|
|
186
|
-
catch {
|
|
187
|
-
args = {};
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
return i18n.t(key, { args });
|
|
191
|
-
}
|
|
192
|
-
extractMessageKeys(messages) {
|
|
193
|
-
if (typeof messages === 'string') {
|
|
194
|
-
return this.extractMessageKey(messages);
|
|
195
|
-
}
|
|
196
|
-
if (Array.isArray(messages)) {
|
|
197
|
-
const keys = messages
|
|
198
|
-
.map((message) => typeof message === 'string'
|
|
199
|
-
? this.extractMessageKey(message)
|
|
200
|
-
: undefined)
|
|
201
|
-
.filter((key) => key !== undefined);
|
|
202
|
-
return keys.length > 0 ? keys : undefined;
|
|
203
|
-
}
|
|
204
|
-
return undefined;
|
|
205
|
-
}
|
|
206
|
-
extractMessageKey(message) {
|
|
207
|
-
const separatorIndex = message.indexOf('|');
|
|
208
|
-
const key = separatorIndex === -1 ? message : message.slice(0, separatorIndex);
|
|
209
|
-
return key.startsWith('message.') || key.startsWith('validation.')
|
|
210
|
-
? key
|
|
211
|
-
: undefined;
|
|
212
|
-
}
|
|
213
190
|
};
|
|
214
191
|
exports.GlobalExceptionFilter = GlobalExceptionFilter;
|
|
215
192
|
exports.GlobalExceptionFilter = GlobalExceptionFilter = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-exception.filter.js","sourceRoot":"","sources":["../../src/filters/global-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAOwB;AAExB,+BAAkC;AAClC,gCAAuC;AACvC,oCAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"global-exception.filter.js","sourceRoot":"","sources":["../../src/filters/global-exception.filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { I18nContext } from 'nestjs-i18n';
|
|
2
|
+
export declare class I18nMessageHelper {
|
|
3
|
+
static translate(message: string, i18n?: I18nContext): string;
|
|
4
|
+
static translateMany(messages: string | string[], i18n?: I18nContext): string | string[];
|
|
5
|
+
static extractKeys(messages: unknown): string | string[] | undefined;
|
|
6
|
+
static extractKey(message: unknown): string | undefined;
|
|
7
|
+
private static extractArgs;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=i18n-message.helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-message.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/i18n-message.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,SAAS,CACd,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,WAAmC,GACxC,MAAM;IAST,MAAM,CAAC,aAAa,CAClB,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAC3B,IAAI,GAAE,WAAmC,GACxC,MAAM,GAAG,MAAM,EAAE;IAMpB,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS;IAgBpE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS;IAYvD,OAAO,CAAC,MAAM,CAAC,WAAW;CAU3B"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.I18nMessageHelper = void 0;
|
|
4
|
+
const nestjs_i18n_1 = require("nestjs-i18n");
|
|
5
|
+
class I18nMessageHelper {
|
|
6
|
+
static translate(message, i18n = nestjs_i18n_1.I18nContext.current()) {
|
|
7
|
+
if (typeof message !== 'string' || !i18n)
|
|
8
|
+
return message;
|
|
9
|
+
const key = this.extractKey(message);
|
|
10
|
+
if (!key)
|
|
11
|
+
return message;
|
|
12
|
+
return i18n.t(key, { args: this.extractArgs(message) });
|
|
13
|
+
}
|
|
14
|
+
static translateMany(messages, i18n = nestjs_i18n_1.I18nContext.current()) {
|
|
15
|
+
return Array.isArray(messages)
|
|
16
|
+
? messages.map((message) => this.translate(message, i18n))
|
|
17
|
+
: this.translate(messages, i18n);
|
|
18
|
+
}
|
|
19
|
+
static extractKeys(messages) {
|
|
20
|
+
if (typeof messages === 'string')
|
|
21
|
+
return this.extractKey(messages);
|
|
22
|
+
if (Array.isArray(messages)) {
|
|
23
|
+
const keys = messages
|
|
24
|
+
.map((message) => typeof message === 'string' ? this.extractKey(message) : undefined)
|
|
25
|
+
.filter((key) => key !== undefined);
|
|
26
|
+
return keys.length > 0 ? keys : undefined;
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
static extractKey(message) {
|
|
31
|
+
if (typeof message !== 'string')
|
|
32
|
+
return undefined;
|
|
33
|
+
const separatorIndex = message.indexOf('|');
|
|
34
|
+
const key = separatorIndex === -1 ? message : message.slice(0, separatorIndex);
|
|
35
|
+
return key.startsWith('message.') || key.startsWith('validation.')
|
|
36
|
+
? key
|
|
37
|
+
: undefined;
|
|
38
|
+
}
|
|
39
|
+
static extractArgs(message) {
|
|
40
|
+
const separatorIndex = message.indexOf('|');
|
|
41
|
+
if (separatorIndex === -1)
|
|
42
|
+
return {};
|
|
43
|
+
try {
|
|
44
|
+
return JSON.parse(message.slice(separatorIndex + 1));
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return {};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.I18nMessageHelper = I18nMessageHelper;
|
|
52
|
+
//# sourceMappingURL=i18n-message.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-message.helper.js","sourceRoot":"","sources":["../../src/helpers/i18n-message.helper.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAE1C,MAAa,iBAAiB;IAC5B,MAAM,CAAC,SAAS,CACd,OAAe,EACf,OAAoB,yBAAW,CAAC,OAAO,EAAE;QAEzC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,IAAI;YAAE,OAAO,OAAO,CAAC;QAEzD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG;YAAE,OAAO,OAAO,CAAC;QAEzB,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,aAAa,CAClB,QAA2B,EAC3B,OAAoB,yBAAW,CAAC,OAAO,EAAE;QAEzC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC5B,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,QAAiB;QAClC,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEnE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,QAAQ;iBAClB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACf,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CACnE;iBACA,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC;YAErD,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,OAAgB;QAChC,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAElD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,GAAG,GACP,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;QAErE,OAAO,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC;YAChE,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,OAAe;QACxC,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,cAAc,KAAK,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAErC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AA5DD,8CA4DC"}
|
package/dist/helpers/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from './convert-string-case.helper';
|
|
|
4
4
|
export * from './generate-hash.helper';
|
|
5
5
|
export * from './get-env.helper';
|
|
6
6
|
export * from './hmac.helper';
|
|
7
|
+
export * from './i18n-message.helper';
|
|
7
8
|
export * from './message-formatter.helper';
|
|
8
9
|
export * from './method.helper';
|
|
9
10
|
export * from './multi-inheritance.helper';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,cAAc,CAAC"}
|
package/dist/helpers/index.js
CHANGED
|
@@ -20,6 +20,7 @@ __exportStar(require("./convert-string-case.helper"), exports);
|
|
|
20
20
|
__exportStar(require("./generate-hash.helper"), exports);
|
|
21
21
|
__exportStar(require("./get-env.helper"), exports);
|
|
22
22
|
__exportStar(require("./hmac.helper"), exports);
|
|
23
|
+
__exportStar(require("./i18n-message.helper"), exports);
|
|
23
24
|
__exportStar(require("./message-formatter.helper"), exports);
|
|
24
25
|
__exportStar(require("./method.helper"), exports);
|
|
25
26
|
__exportStar(require("./multi-inheritance.helper"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,uDAAqC;AACrC,+DAA6C;AAC7C,yDAAuC;AACvC,mDAAiC;AACjC,gDAA8B;AAC9B,6DAA2C;AAC3C,kDAAgC;AAChC,6DAA2C;AAC3C,iDAA+B;AAC/B,qDAAmC;AACnC,4DAA0C;AAC1C,wEAAsD;AACtD,+CAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,uDAAqC;AACrC,+DAA6C;AAC7C,yDAAuC;AACvC,mDAAiC;AACjC,gDAA8B;AAC9B,wDAAsC;AACtC,6DAA2C;AAC3C,kDAAgC;AAChC,6DAA2C;AAC3C,iDAA+B;AAC/B,qDAAmC;AACnC,4DAA0C;AAC1C,wEAAsD;AACtD,+CAA6B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rxjs-catch-error.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/rxjs-catch-error.helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,MAAM,CAAC;AAEd,wBAAgB,oBAAoB,CAClC,CAAC,EACD,CAAC,SAAS,eAAe,CAAC,GAAG,CAAC,KAC3B,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"rxjs-catch-error.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/rxjs-catch-error.helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,MAAM,CAAC;AAEd,wBAAgB,oBAAoB,CAClC,CAAC,EACD,CAAC,SAAS,eAAe,CAAC,GAAG,CAAC,KAC3B,gBAAgB,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CA+B/C"}
|
|
@@ -39,12 +39,25 @@ const exceptions = __importStar(require("@nestjs/common/exceptions"));
|
|
|
39
39
|
const rxjs_1 = require("rxjs");
|
|
40
40
|
function RxjsCatchErrorHelper() {
|
|
41
41
|
return (0, rxjs_1.catchError)((err) => {
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
const exceptionName = err?.name ?? err?.response?.name;
|
|
43
|
+
const cause = err?.cause ??
|
|
44
|
+
err?.response?.cause ??
|
|
45
|
+
err?.details?.cause ??
|
|
46
|
+
err?.response?.details?.cause;
|
|
47
|
+
if (exceptions[exceptionName]) {
|
|
48
|
+
const exception = new exceptions[exceptionName](err?.response ?? err?.message, { cause });
|
|
49
|
+
if (cause !== undefined)
|
|
50
|
+
exception.cause = cause;
|
|
51
|
+
throw exception;
|
|
52
|
+
}
|
|
44
53
|
else if (Object.keys(strapiApplicationErrors).includes(err?.name))
|
|
45
|
-
throw new strapiApplicationErrors[err?.name](err?.err?.message ?? err?.message,
|
|
54
|
+
throw new strapiApplicationErrors[err?.name](err?.err?.message ?? err?.message, {
|
|
55
|
+
cause: cause ?? err?.err?.details?.cause ?? err?.err?.details ?? undefined,
|
|
56
|
+
});
|
|
46
57
|
else
|
|
47
|
-
throw new common_1.InternalServerErrorException(err?.response ?? err
|
|
58
|
+
throw new common_1.InternalServerErrorException(err?.response ?? err, {
|
|
59
|
+
cause,
|
|
60
|
+
});
|
|
48
61
|
});
|
|
49
62
|
}
|
|
50
63
|
const strapiApplicationErrors = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rxjs-catch-error.helper.js","sourceRoot":"","sources":["../../src/helpers/rxjs-catch-error.helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,
|
|
1
|
+
{"version":3,"file":"rxjs-catch-error.helper.js","sourceRoot":"","sources":["../../src/helpers/rxjs-catch-error.helper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,oDAkCC;AA3CD,2CAA8D;AAC9D,sEAAwD;AACxD,+BAKc;AAEd,SAAgB,oBAAoB;IAIlC,OAAO,IAAA,iBAAU,EAAC,CAAC,GAAG,EAAE,EAAE;QACxB,MAAM,aAAa,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC;QACvD,MAAM,KAAK,GACT,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,QAAQ,EAAE,KAAK;YACpB,GAAG,EAAE,OAAO,EAAE,KAAK;YACnB,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC;QAEhC,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAC7C,GAAG,EAAE,QAAQ,IAAI,GAAG,EAAE,OAAO,EAC7B,EAAE,KAAK,EAAE,CACV,CAAC;YAEF,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;YAEjD,MAAM,SAAS,CAAC;QAClB,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;YACjE,MAAM,IAAI,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAC1C,GAAG,EAAE,GAAG,EAAE,OAAO,IAAI,GAAG,EAAE,OAAO,EACjC;gBACE,KAAK,EACH,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,OAAO,IAAI,SAAS;aACtE,CACF,CAAC;;YAEF,MAAM,IAAI,qCAA4B,CAAC,GAAG,EAAE,QAAQ,IAAI,GAAG,EAAE;gBAC3D,KAAK;aACN,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,uBAAuB,GAAG;IAC9B,gBAAgB,EAAE,UAAU,CAAC,4BAA4B;IACzD,eAAe,EAAE,UAAU,CAAC,mBAAmB;IAC/C,eAAe,EAAE,UAAU,CAAC,mBAAmB;IAC/C,aAAa,EAAE,UAAU,CAAC,iBAAiB;IAC3C,cAAc,EAAE,UAAU,CAAC,kBAAkB;IAC7C,iBAAiB,EAAE,UAAU,CAAC,qBAAqB;IACnD,cAAc,EAAE,UAAU,CAAC,4BAA4B;IACvD,oBAAoB,EAAE,UAAU,CAAC,wBAAwB;IACzD,WAAW,EAAE,UAAU,CAAC,4BAA4B;IACpD,mBAAmB,EAAE,UAAU,CAAC,uBAAuB;CACxD,CAAC"}
|