@hodfords/nestjs-grpc-helper 10.2.4 → 10.3.0
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/interceptors/grpc-translation.interceptor.d.ts +7 -0
- package/interceptors/grpc-translation.interceptor.js +22 -0
- package/interceptors/grpc-translation.interceptor.js.map +1 -0
- package/package.json +1 -1
- package/sdk-stub/helpers/grpc.helper.d.ts +0 -2
- package/sdk-stub/helpers/grpc.helper.js +2 -20
- package/sdk-stub/helpers/grpc.helper.js.map +1 -1
- package/sdk-stub/helpers/grpc.helper.ts +3 -27
- package/sdk-stub/types/microservice-option.type.d.ts +3 -2
- package/sdk-stub/types/microservice-option.type.ts +4 -2
- package/sdk-stub/constants/multi-language-key.constant.d.ts +0 -3
- package/sdk-stub/constants/multi-language-key.constant.js +0 -7
- package/sdk-stub/constants/multi-language-key.constant.js.map +0 -1
- package/sdk-stub/constants/multi-language-key.constant.ts +0 -3
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
export declare class GrpcTranslationInterceptor implements NestInterceptor {
|
|
4
|
+
private metadataLanguageKeys;
|
|
5
|
+
constructor(metadataLanguageKeys: string[]);
|
|
6
|
+
intercept(context: ExecutionContext, next: CallHandler<any>): Promise<Observable<any>>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GrpcTranslationInterceptor = void 0;
|
|
4
|
+
const nestjs_cls_translation_1 = require("@hodfords/nestjs-cls-translation");
|
|
5
|
+
const lodash_1 = require("lodash");
|
|
6
|
+
const rxjs_1 = require("rxjs");
|
|
7
|
+
class GrpcTranslationInterceptor {
|
|
8
|
+
constructor(metadataLanguageKeys) {
|
|
9
|
+
this.metadataLanguageKeys = metadataLanguageKeys;
|
|
10
|
+
}
|
|
11
|
+
intercept(context, next) {
|
|
12
|
+
const metadata = context.switchToRpc().getContext().getMap();
|
|
13
|
+
const params = this.metadataLanguageKeys.reduce((values, key) => {
|
|
14
|
+
params[key] = metadata[key];
|
|
15
|
+
return values;
|
|
16
|
+
}, {});
|
|
17
|
+
context.switchToHttp().getRequest().i18nLang = metadata[(0, lodash_1.first)(this.metadataLanguageKeys)];
|
|
18
|
+
return (0, nestjs_cls_translation_1.runInLanguage)(params, () => (0, rxjs_1.from)((0, rxjs_1.firstValueFrom)(next.handle())));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.GrpcTranslationInterceptor = GrpcTranslationInterceptor;
|
|
22
|
+
//# sourceMappingURL=grpc-translation.interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grpc-translation.interceptor.js","sourceRoot":"","sources":["../../../lib/interceptors/grpc-translation.interceptor.ts"],"names":[],"mappings":";;;AACA,6EAAiE;AAEjE,mCAA+B;AAC/B,+BAAwD;AAExD,MAAa,0BAA0B;IACnC,YAAoB,oBAA8B;QAA9B,yBAAoB,GAApB,oBAAoB,CAAU;IAAG,CAAC;IAEtD,SAAS,CAAC,OAAyB,EAAE,IAAsB;QACvD,MAAM,QAAQ,GAAa,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,MAAM,CAAC;QAClB,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAA,cAAK,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC1F,OAAO,IAAA,sCAAa,EAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAA,WAAI,EAAC,IAAA,qBAAc,EAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;CACJ;AAZD,gEAYC"}
|
package/package.json
CHANGED
|
@@ -13,8 +13,6 @@ export declare class GrpcHelper<Model> {
|
|
|
13
13
|
new (): Model;
|
|
14
14
|
}, options: MicroserviceClientOptionType): GrpcHelper<Model>;
|
|
15
15
|
private constructor();
|
|
16
|
-
private currentPriorityLanguage;
|
|
17
|
-
private appendLanguages;
|
|
18
16
|
service(name: string): GrpcHelper<Model>;
|
|
19
17
|
method(name: string): GrpcHelper<Model>;
|
|
20
18
|
data(data: any, parameterModel?: any): GrpcHelper<Model>;
|
|
@@ -6,7 +6,6 @@ const common_1 = require("@nestjs/common");
|
|
|
6
6
|
const class_transformer_1 = require("class-transformer");
|
|
7
7
|
const nestjs_cls_translation_1 = require("@hodfords/nestjs-cls-translation");
|
|
8
8
|
const grpc_js_1 = require("@grpc/grpc-js");
|
|
9
|
-
const multi_language_key_constant_1 = require("../constants/multi-language-key.constant");
|
|
10
9
|
const logger_service_1 = require("@nestjs/common/services/logger.service");
|
|
11
10
|
class GrpcHelper {
|
|
12
11
|
static with(client, model, options) {
|
|
@@ -18,25 +17,8 @@ class GrpcHelper {
|
|
|
18
17
|
this.options = options;
|
|
19
18
|
this.metadata = new grpc_js_1.Metadata();
|
|
20
19
|
this.logger = new logger_service_1.Logger(this.constructor.name);
|
|
21
|
-
if (this.options.
|
|
22
|
-
this.
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
currentPriorityLanguage(key = multi_language_key_constant_1.REPORT_LANGUAGE_KEY) {
|
|
26
|
-
return nestjs_cls_translation_1.CLS_TRANSLATION_NAMESPACE.get(key);
|
|
27
|
-
}
|
|
28
|
-
appendLanguages() {
|
|
29
|
-
const platformLanguage = (0, nestjs_cls_translation_1.currentLanguage)();
|
|
30
|
-
const reportLanguage = this.currentPriorityLanguage();
|
|
31
|
-
const communicationLanguage = (0, nestjs_cls_translation_1.getLanguageByKey)(multi_language_key_constant_1.COMMUNICATION_LANGUAGE);
|
|
32
|
-
if (platformLanguage) {
|
|
33
|
-
this.metadata.add(multi_language_key_constant_1.PLATFORM_LANGUAGE_KEY, platformLanguage);
|
|
34
|
-
}
|
|
35
|
-
if (reportLanguage) {
|
|
36
|
-
this.metadata.add(multi_language_key_constant_1.REPORT_LANGUAGE_KEY, reportLanguage);
|
|
37
|
-
}
|
|
38
|
-
if (communicationLanguage) {
|
|
39
|
-
this.metadata.add(multi_language_key_constant_1.COMMUNICATION_LANGUAGE, communicationLanguage);
|
|
20
|
+
if (this.options.requestInitializer) {
|
|
21
|
+
this.options.requestInitializer(this.metadata);
|
|
40
22
|
}
|
|
41
23
|
}
|
|
42
24
|
service(name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc.helper.js","sourceRoot":"","sources":["../../../../lib/sdk-stub/helpers/grpc.helper.ts"],"names":[],"mappings":";;;AACA,+BAA2D;AAC3D,2CAA2D;AAC3D,yDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"grpc.helper.js","sourceRoot":"","sources":["../../../../lib/sdk-stub/helpers/grpc.helper.ts"],"names":[],"mappings":";;;AACA,+BAA2D;AAC3D,2CAA2D;AAC3D,yDAAoD;AACpD,6EAAyD;AACzD,2CAAiD;AAEjD,2EAAgE;AAEhE,MAAa,UAAU;IAOnB,MAAM,CAAC,IAAI,CACP,MAAkB,EAClB,KAAwB,EACxB,OAAqC;QAErC,OAAO,IAAI,UAAU,CAAQ,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,YACY,MAAkB,EAClB,KAAwB,EACxB,OAAqC;QAFrC,WAAM,GAAN,MAAM,CAAY;QAClB,UAAK,GAAL,KAAK,CAAmB;QACxB,YAAO,GAAP,OAAO,CAA8B;QAdzC,aAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;QAC1B,WAAM,GAAG,IAAI,uBAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAe/C,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAY;QAChB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAM,IAAI,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,IAAY;QACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,IAAS,EAAE,cAAoB;QAChC,IAAI,cAAc,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,IAAA,mCAAe,EAAC,cAAc,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM;QACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,OAAO;QACT,IAAI,CAAC;YACD,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAO,CAAC;YACrC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5B,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,OAAO,IAAA,mCAAe,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,IAAA,mCAAe,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,CAAC;QACL,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7B,MAAM,SAAS,CAAC;QACpB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO;QACjB,MAAM,OAAO,GAAG,GAAe,EAAE,CAC7B,IAAI,CAAC,SAAS,CACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CACrG,CAAC;QAEN,OAAO,OAAO,EAAE,CAAC;IACrB,CAAC;IAIO,KAAK,CAAC,SAAS,CAAI,OAAsB;QAC7C,IAAI,CAAC;YACD,OAAO,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,KAAU;QAC1B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,IAAI,KAAK,CAAC,IAAI,IAAI,gBAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAChD,MAAM,SAAS,GAAQ,IAAI,sBAAa,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBACpF,SAAS,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;gBAC7C,SAAS,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;gBAC1C,MAAM,SAAS,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACzB,MAAM,IAAI,sBAAa,CAAC,IAAA,8BAAK,EAAC,yBAAyB,CAAC,EAAE,mBAAU,CAAC,qBAAqB,CAAC,CAAC;YAChG,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;CACJ;AArGD,gCAqGC"}
|
|
@@ -2,14 +2,9 @@ import { ClientGrpc } from '@nestjs/microservices';
|
|
|
2
2
|
import { firstValueFrom, Observable, timeout } from 'rxjs';
|
|
3
3
|
import { HttpException, HttpStatus } from '@nestjs/common';
|
|
4
4
|
import { plainToInstance } from 'class-transformer';
|
|
5
|
-
import {
|
|
5
|
+
import { trans } from '@hodfords/nestjs-cls-translation';
|
|
6
6
|
import { Metadata, status } from '@grpc/grpc-js';
|
|
7
7
|
import { MicroserviceClientOptionType } from '../types/microservice-option.type';
|
|
8
|
-
import {
|
|
9
|
-
COMMUNICATION_LANGUAGE,
|
|
10
|
-
PLATFORM_LANGUAGE_KEY,
|
|
11
|
-
REPORT_LANGUAGE_KEY
|
|
12
|
-
} from '../constants/multi-language-key.constant';
|
|
13
8
|
import { Logger } from '@nestjs/common/services/logger.service';
|
|
14
9
|
|
|
15
10
|
export class GrpcHelper<Model> {
|
|
@@ -32,27 +27,8 @@ export class GrpcHelper<Model> {
|
|
|
32
27
|
private model: { new (): Model },
|
|
33
28
|
private options: MicroserviceClientOptionType
|
|
34
29
|
) {
|
|
35
|
-
if (this.options.
|
|
36
|
-
this.
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
private currentPriorityLanguage(key = REPORT_LANGUAGE_KEY) {
|
|
41
|
-
return CLS_TRANSLATION_NAMESPACE.get(key);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
private appendLanguages() {
|
|
45
|
-
const platformLanguage = currentLanguage();
|
|
46
|
-
const reportLanguage = this.currentPriorityLanguage();
|
|
47
|
-
const communicationLanguage = getLanguageByKey(COMMUNICATION_LANGUAGE);
|
|
48
|
-
if (platformLanguage) {
|
|
49
|
-
this.metadata.add(PLATFORM_LANGUAGE_KEY, platformLanguage);
|
|
50
|
-
}
|
|
51
|
-
if (reportLanguage) {
|
|
52
|
-
this.metadata.add(REPORT_LANGUAGE_KEY, reportLanguage);
|
|
53
|
-
}
|
|
54
|
-
if (communicationLanguage) {
|
|
55
|
-
this.metadata.add(COMMUNICATION_LANGUAGE, communicationLanguage);
|
|
30
|
+
if (this.options.requestInitializer) {
|
|
31
|
+
this.options.requestInitializer(this.metadata);
|
|
56
32
|
}
|
|
57
33
|
}
|
|
58
34
|
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { Metadata } from '@grpc/grpc-js';
|
|
1
2
|
export type MicroserviceModuleOptionType = {
|
|
2
3
|
timeout: number;
|
|
3
4
|
url: string;
|
|
4
5
|
ssl?: boolean;
|
|
5
6
|
maxReceiveMessageLength?: number;
|
|
6
7
|
shouldLoadEmptyArray?: boolean;
|
|
7
|
-
|
|
8
|
+
requestInitializer?: (metadata: Metadata) => void;
|
|
8
9
|
};
|
|
9
10
|
export type MicroserviceClientOptionType = {
|
|
10
11
|
timeout: number;
|
|
11
|
-
|
|
12
|
+
requestInitializer?: (metadata: Metadata) => void;
|
|
12
13
|
};
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
import { Metadata } from '@grpc/grpc-js';
|
|
2
|
+
|
|
1
3
|
export type MicroserviceModuleOptionType = {
|
|
2
4
|
timeout: number;
|
|
3
5
|
url: string;
|
|
4
6
|
ssl?: boolean;
|
|
5
7
|
maxReceiveMessageLength?: number;
|
|
6
8
|
shouldLoadEmptyArray?: boolean;
|
|
7
|
-
|
|
9
|
+
requestInitializer?: (metadata: Metadata) => void;
|
|
8
10
|
};
|
|
9
11
|
|
|
10
12
|
export type MicroserviceClientOptionType = {
|
|
11
13
|
timeout: number;
|
|
12
|
-
|
|
14
|
+
requestInitializer?: (metadata: Metadata) => void;
|
|
13
15
|
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PLATFORM_LANGUAGE_KEY = exports.REPORT_LANGUAGE_KEY = exports.COMMUNICATION_LANGUAGE = void 0;
|
|
4
|
-
exports.COMMUNICATION_LANGUAGE = 'communication-language';
|
|
5
|
-
exports.REPORT_LANGUAGE_KEY = 'report-language';
|
|
6
|
-
exports.PLATFORM_LANGUAGE_KEY = 'platform-language';
|
|
7
|
-
//# sourceMappingURL=multi-language-key.constant.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multi-language-key.constant.js","sourceRoot":"","sources":["../../../../lib/sdk-stub/constants/multi-language-key.constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAClD,QAAA,mBAAmB,GAAG,iBAAiB,CAAC;AACxC,QAAA,qBAAqB,GAAG,mBAAmB,CAAC"}
|