@russ-b/nestjs-common-tools 1.1.9 → 1.1.11
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/common/grpc/filters/index.d.ts +1 -1
- package/dist/common/grpc/filters/index.js +1 -1
- package/dist/common/grpc/filters/index.js.map +1 -1
- package/dist/grpc/client-grpc.interface.d.ts +34 -0
- package/dist/grpc/client-grpc.interface.js +3 -0
- package/dist/grpc/client-grpc.interface.js.map +1 -0
- package/dist/grpc/filters/index.d.ts +1 -0
- package/dist/grpc/filters/index.js +18 -0
- package/dist/grpc/filters/index.js.map +1 -0
- package/dist/grpc/filters/rpc-exception.filter.d.ts +6 -0
- package/dist/grpc/filters/rpc-exception.filter.js +63 -0
- package/dist/grpc/filters/rpc-exception.filter.js.map +1 -0
- package/dist/grpc/filters/typeorm-exception.filter.d.ts +6 -0
- package/dist/grpc/filters/typeorm-exception.filter.js +52 -0
- package/dist/grpc/filters/typeorm-exception.filter.js.map +1 -0
- package/dist/grpc/index.d.ts +3 -0
- package/dist/grpc/index.js +20 -0
- package/dist/grpc/index.js.map +1 -0
- package/dist/grpc/interceptors/index.d.ts +1 -0
- package/dist/grpc/interceptors/index.js +18 -0
- package/dist/grpc/interceptors/index.js.map +1 -0
- package/dist/grpc/interceptors/struct.interceptor.d.ts +9 -0
- package/dist/grpc/interceptors/struct.interceptor.js +46 -0
- package/dist/grpc/interceptors/struct.interceptor.js.map +1 -0
- package/dist/grpc/interfaces/index.d.ts +1 -0
- package/dist/grpc/interfaces/index.js +18 -0
- package/dist/grpc/interfaces/index.js.map +1 -0
- package/dist/grpc/interfaces/package-definition.interface.d.ts +18 -0
- package/dist/grpc/interfaces/package-definition.interface.js +3 -0
- package/dist/grpc/interfaces/package-definition.interface.js.map +1 -0
- package/dist/grpc/proxies/base-client-grpc.proxy.d.ts +7 -0
- package/dist/grpc/proxies/base-client-grpc.proxy.js +71 -0
- package/dist/grpc/proxies/base-client-grpc.proxy.js.map +1 -0
- package/dist/grpc/proxies/index.d.ts +1 -0
- package/dist/grpc/proxies/index.js +18 -0
- package/dist/grpc/proxies/index.js.map +1 -0
- package/dist/grpc/services/grpc-package-definition.service.d.ts +16 -0
- package/dist/grpc/services/grpc-package-definition.service.js +76 -0
- package/dist/grpc/services/grpc-package-definition.service.js.map +1 -0
- package/dist/grpc/transformers/index.d.ts +1 -0
- package/dist/grpc/transformers/index.js +18 -0
- package/dist/grpc/transformers/index.js.map +1 -0
- package/dist/grpc/transformers/struct/index.d.ts +2 -0
- package/dist/grpc/transformers/struct/index.js +19 -0
- package/dist/grpc/transformers/struct/index.js.map +1 -0
- package/dist/grpc/transformers/struct/struct.interface.d.ts +17 -0
- package/dist/grpc/transformers/struct/struct.interface.js +3 -0
- package/dist/grpc/transformers/struct/struct.interface.js.map +1 -0
- package/dist/grpc/transformers/struct/struct.transformer.d.ts +8 -0
- package/dist/grpc/transformers/struct/struct.transformer.js +86 -0
- package/dist/grpc/transformers/struct/struct.transformer.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/services/base-entity.service.d.ts +23 -0
- package/dist/services/base-entity.service.js +67 -0
- package/dist/services/base-entity.service.js.map +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +18 -0
- package/dist/services/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/validators/entity/entity.constant.d.ts +1 -0
- package/dist/validators/entity/entity.constant.js +5 -0
- package/dist/validators/entity/entity.constant.js.map +1 -0
- package/dist/validators/entity/entity.constraint.d.ts +9 -0
- package/dist/validators/entity/entity.constraint.js +74 -0
- package/dist/validators/entity/entity.constraint.js.map +1 -0
- package/dist/validators/entity/entity.decorator.d.ts +3 -0
- package/dist/validators/entity/entity.decorator.js +20 -0
- package/dist/validators/entity/entity.decorator.js.map +1 -0
- package/dist/validators/entity/entity.interface.d.ts +5 -0
- package/dist/validators/entity/entity.interface.js +3 -0
- package/dist/validators/entity/entity.interface.js.map +1 -0
- package/dist/validators/entity/index.d.ts +4 -0
- package/dist/validators/entity/index.js +21 -0
- package/dist/validators/entity/index.js.map +1 -0
- package/dist/validators/index.d.ts +1 -0
- package/dist/validators/index.js +18 -0
- package/dist/validators/index.js.map +1 -0
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './typeorm-exception.filter';
|
|
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./typeorm-exception.filter"), exports);
|
|
18
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/grpc/filters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/grpc/filters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { DescriptorProto, FieldDescriptorProto } from 'ts-proto/build/protos';
|
|
2
|
+
export interface IGrpcMethod {
|
|
3
|
+
requestType: {
|
|
4
|
+
type: DescriptorProto;
|
|
5
|
+
};
|
|
6
|
+
responseType: {
|
|
7
|
+
type: DescriptorProto;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export interface IMethodDescriptor {
|
|
11
|
+
request: FieldDescriptorProto[];
|
|
12
|
+
response: FieldDescriptorProto[];
|
|
13
|
+
}
|
|
14
|
+
interface IStruct {
|
|
15
|
+
fields?: {
|
|
16
|
+
[k: string]: IValue;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
interface IListValue {
|
|
20
|
+
values?: IValue[];
|
|
21
|
+
}
|
|
22
|
+
export interface IValue {
|
|
23
|
+
kind?: string;
|
|
24
|
+
nullValue?: 0;
|
|
25
|
+
numberValue?: number;
|
|
26
|
+
stringValue?: string;
|
|
27
|
+
boolValue?: boolean;
|
|
28
|
+
structValue?: IStruct;
|
|
29
|
+
listValue?: IListValue;
|
|
30
|
+
}
|
|
31
|
+
export interface StructObject {
|
|
32
|
+
[key: string]: any;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-grpc.interface.js","sourceRoot":"","sources":["../../src/grpc/client-grpc.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './typeorm-exception.filter';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./typeorm-exception.filter"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/grpc/filters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ArgumentsHost, ExceptionFilter } from '@nestjs/common';
|
|
2
|
+
import { RpcException } from '@nestjs/microservices';
|
|
3
|
+
export declare class RpcExceptionFilter implements ExceptionFilter {
|
|
4
|
+
private logger;
|
|
5
|
+
catch(exception: RpcException, host: ArgumentsHost): void;
|
|
6
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.RpcExceptionFilter = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const microservices_1 = require("@nestjs/microservices");
|
|
12
|
+
let RpcExceptionFilter = class RpcExceptionFilter {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.logger = new common_1.Logger(this.constructor.name);
|
|
15
|
+
}
|
|
16
|
+
catch(exception, host) {
|
|
17
|
+
const ctx = host.switchToHttp();
|
|
18
|
+
const response = ctx.getResponse();
|
|
19
|
+
const error = exception.getError();
|
|
20
|
+
let status = common_1.HttpStatus.INTERNAL_SERVER_ERROR;
|
|
21
|
+
let message = 'Internal server error';
|
|
22
|
+
switch (error.code) {
|
|
23
|
+
case 1:
|
|
24
|
+
break;
|
|
25
|
+
case 3:
|
|
26
|
+
status = common_1.HttpStatus.BAD_REQUEST;
|
|
27
|
+
break;
|
|
28
|
+
case 5:
|
|
29
|
+
status = common_1.HttpStatus.NOT_FOUND;
|
|
30
|
+
break;
|
|
31
|
+
case 7:
|
|
32
|
+
status = common_1.HttpStatus.FORBIDDEN;
|
|
33
|
+
break;
|
|
34
|
+
case 12:
|
|
35
|
+
status = common_1.HttpStatus.NOT_IMPLEMENTED;
|
|
36
|
+
break;
|
|
37
|
+
case 16:
|
|
38
|
+
status = common_1.HttpStatus.UNAUTHORIZED;
|
|
39
|
+
break;
|
|
40
|
+
default:
|
|
41
|
+
this.logger.error(error);
|
|
42
|
+
}
|
|
43
|
+
message = error.message || message;
|
|
44
|
+
let details = '';
|
|
45
|
+
try {
|
|
46
|
+
details = JSON.parse(error.details)['error'];
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
details = error.details;
|
|
50
|
+
}
|
|
51
|
+
response.status(status).json({
|
|
52
|
+
statusCode: status,
|
|
53
|
+
message: message,
|
|
54
|
+
error: common_1.HttpStatus[status],
|
|
55
|
+
details: details,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
exports.RpcExceptionFilter = RpcExceptionFilter;
|
|
60
|
+
exports.RpcExceptionFilter = RpcExceptionFilter = __decorate([
|
|
61
|
+
(0, common_1.Catch)(microservices_1.RpcException)
|
|
62
|
+
], RpcExceptionFilter);
|
|
63
|
+
//# sourceMappingURL=rpc-exception.filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-exception.filter.js","sourceRoot":"","sources":["../../../src/grpc/filters/rpc-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAMwB;AACxB,yDAAqD;AAI9C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAAxB;QACG,WAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAiDrD,CAAC;IA/CC,KAAK,CAAC,SAAuB,EAAE,IAAmB;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAE7C,MAAM,KAAK,GAAQ,SAAS,CAAC,QAAQ,EAAE,CAAC;QACxC,IAAI,MAAM,GAAG,mBAAU,CAAC,qBAAqB,CAAC;QAC9C,IAAI,OAAO,GAAG,uBAAuB,CAAC;QAGtC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC;gBACJ,MAAM;YACR,KAAK,CAAC;gBACJ,MAAM,GAAG,mBAAU,CAAC,WAAW,CAAC;gBAChC,MAAM;YACR,KAAK,CAAC;gBACJ,MAAM,GAAG,mBAAU,CAAC,SAAS,CAAC;gBAC9B,MAAM;YACR,KAAK,CAAC;gBACJ,MAAM,GAAG,mBAAU,CAAC,SAAS,CAAC;gBAC9B,MAAM;YACR,KAAK,EAAE;gBACL,MAAM,GAAG,mBAAU,CAAC,eAAe,CAAC;gBACpC,MAAM;YACR,KAAK,EAAE;gBACL,MAAM,GAAG,mBAAU,CAAC,YAAY,CAAC;gBACjC,MAAM;YACR;gBACE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC;QAEnC,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC1B,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAC3B,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,mBAAU,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAlDY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,cAAK,EAAC,4BAAY,CAAC;GACP,kBAAkB,CAkD9B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ExceptionFilter, ArgumentsHost } from '@nestjs/common';
|
|
2
|
+
import { QueryFailedError } from 'typeorm';
|
|
3
|
+
export declare class TypeOrmExceptionFilter implements ExceptionFilter {
|
|
4
|
+
catch(exception: QueryFailedError, host: ArgumentsHost): import("rxjs").Observable<never> | undefined;
|
|
5
|
+
private getError;
|
|
6
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.TypeOrmExceptionFilter = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const typeorm_1 = require("typeorm");
|
|
12
|
+
const grpc_js_1 = require("@grpc/grpc-js");
|
|
13
|
+
const rxjs_1 = require("rxjs");
|
|
14
|
+
let TypeOrmExceptionFilter = class TypeOrmExceptionFilter {
|
|
15
|
+
catch(exception, host) {
|
|
16
|
+
if (host.getType() !== 'rpc') {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const errno = exception.errno || +exception.code;
|
|
20
|
+
const error = this.getError(errno);
|
|
21
|
+
return (0, rxjs_1.throwError)(() => ({
|
|
22
|
+
code: error?.code || 500,
|
|
23
|
+
message: error?.message || exception.message,
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
getError(code) {
|
|
27
|
+
const errorMapping = {
|
|
28
|
+
23505: {
|
|
29
|
+
code: grpc_js_1.status.ALREADY_EXISTS,
|
|
30
|
+
message: 'A record with these unique constraints already exists',
|
|
31
|
+
},
|
|
32
|
+
1062: {
|
|
33
|
+
code: grpc_js_1.status.ALREADY_EXISTS,
|
|
34
|
+
message: 'A record with these unique constraints already exists',
|
|
35
|
+
},
|
|
36
|
+
1451: {
|
|
37
|
+
code: grpc_js_1.status.ALREADY_EXISTS,
|
|
38
|
+
message: 'Cannot delete or update a parent row: a foreign key constraint fails',
|
|
39
|
+
},
|
|
40
|
+
1452: {
|
|
41
|
+
code: grpc_js_1.status.INVALID_ARGUMENT,
|
|
42
|
+
message: 'Cannot add or update a child row: a foreign key constraint fails',
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
return errorMapping[code];
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
exports.TypeOrmExceptionFilter = TypeOrmExceptionFilter;
|
|
49
|
+
exports.TypeOrmExceptionFilter = TypeOrmExceptionFilter = __decorate([
|
|
50
|
+
(0, common_1.Catch)(typeorm_1.QueryFailedError)
|
|
51
|
+
], TypeOrmExceptionFilter);
|
|
52
|
+
//# sourceMappingURL=typeorm-exception.filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeorm-exception.filter.js","sourceRoot":"","sources":["../../../src/grpc/filters/typeorm-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAuE;AACvE,qCAA2C;AAC3C,2CAAuC;AACvC,+BAAkC;AAQ3B,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,KAAK,CAAC,SAA2B,EAAE,IAAmB;QACpD,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAI,SAAiB,CAAC,KAAK,IAAI,CAAE,SAAiB,CAAC,IAAI,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,CAAC;YACvB,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,GAAG;YACxB,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,SAAS,CAAC,OAAO;SAC7C,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,QAAQ,CAAC,IAAY;QAC3B,MAAM,YAAY,GAA2B;YAC3C,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAM,CAAC,cAAc;gBAC3B,OAAO,EAAE,uDAAuD;aACjE;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,gBAAM,CAAC,cAAc;gBAC3B,OAAO,EAAE,uDAAuD;aACjE;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,gBAAM,CAAC,cAAc;gBAC3B,OAAO,EACL,sEAAsE;aACzE;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,gBAAM,CAAC,gBAAgB;gBAC7B,OAAO,EACL,kEAAkE;aACrE;SACF,CAAC;QAEF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAtCY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,cAAK,EAAC,0BAAgB,CAAC;GACX,sBAAsB,CAsClC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./filters"), exports);
|
|
18
|
+
__exportStar(require("./proxies"), exports);
|
|
19
|
+
__exportStar(require("./transformers"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/grpc/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,4CAA0B;AAC1B,iDAA+B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './struct.interceptor';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./struct.interceptor"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/grpc/interceptors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { GrpcPackageDefinitionService } from '../services/grpc-package-definition.service';
|
|
4
|
+
export declare class StructInterceptor implements NestInterceptor {
|
|
5
|
+
private readonly packageDefinitionService;
|
|
6
|
+
constructor(packageDefinitionService: GrpcPackageDefinitionService);
|
|
7
|
+
intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
|
|
8
|
+
private traverseAndTransform;
|
|
9
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.StructInterceptor = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const rxjs_1 = require("rxjs");
|
|
15
|
+
const transformers_1 = require("../transformers");
|
|
16
|
+
const grpc_package_definition_service_1 = require("../services/grpc-package-definition.service");
|
|
17
|
+
const constants_1 = require("@nestjs/microservices/constants");
|
|
18
|
+
const GOOGLE_PROTOBUF_STRUCT = 'google.protobuf.Struct';
|
|
19
|
+
let StructInterceptor = class StructInterceptor {
|
|
20
|
+
constructor(packageDefinitionService) {
|
|
21
|
+
this.packageDefinitionService = packageDefinitionService;
|
|
22
|
+
}
|
|
23
|
+
intercept(context, next) {
|
|
24
|
+
const grpcContext = context.switchToRpc();
|
|
25
|
+
const { service, rpc } = Reflect.getMetadata(constants_1.PATTERN_METADATA, context.getHandler())[0];
|
|
26
|
+
const protoFields = this.packageDefinitionService.getRequestFields(service, rpc);
|
|
27
|
+
const fields = this.packageDefinitionService.findFieldsByType(protoFields, GOOGLE_PROTOBUF_STRUCT);
|
|
28
|
+
context.getArgs()[0] = this.traverseAndTransform(grpcContext.getData(), fields);
|
|
29
|
+
return next.handle().pipe((0, rxjs_1.map)((data) => {
|
|
30
|
+
const protoFields = this.packageDefinitionService.getResponseFields(service, rpc);
|
|
31
|
+
const fields = this.packageDefinitionService.findFieldsByType(protoFields, GOOGLE_PROTOBUF_STRUCT);
|
|
32
|
+
fields.forEach((f) => (data[f.name] = transformers_1.StructTransformer.toStruct(data[f.name])));
|
|
33
|
+
return data;
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
traverseAndTransform(obj, fields) {
|
|
37
|
+
fields.forEach((f) => (obj[f.name] = f.fields?.length ? this.traverseAndTransform(obj[f.name], f.fields) : transformers_1.StructTransformer.toObject(obj[f.name])));
|
|
38
|
+
return obj;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
exports.StructInterceptor = StructInterceptor;
|
|
42
|
+
exports.StructInterceptor = StructInterceptor = __decorate([
|
|
43
|
+
(0, common_1.Injectable)(),
|
|
44
|
+
__metadata("design:paramtypes", [grpc_package_definition_service_1.GrpcPackageDefinitionService])
|
|
45
|
+
], StructInterceptor);
|
|
46
|
+
//# sourceMappingURL=struct.interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"struct.interceptor.js","sourceRoot":"","sources":["../../../src/grpc/interceptors/struct.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,+BAAuC;AACvC,kDAAoD;AACpD,iGAA2F;AAC3F,+DAAmE;AAGnE,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAGjD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YACmB,wBAAsD;QAAtD,6BAAwB,GAAxB,wBAAwB,CAA8B;IACtE,CAAC;IACJ,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,CAC1C,4BAAgB,EAChB,OAAO,CAAC,UAAU,EAAE,CACrB,CAAC,CAAC,CAAC,CAAC;QAEL,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAChE,OAAO,EACP,GAAG,CACJ,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAC3D,WAAW,EACX,sBAAsB,CACvB,CAAC;QAEF,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAC9C,WAAW,CAAC,OAAO,EAAE,EACrB,MAAM,CACP,CAAC;QACF,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,UAAG,EAAC,CAAC,IAAS,EAAE,EAAE;YAChB,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CACjE,OAAO,EACP,GAAG,CACJ,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAC3D,WAAW,EACX,sBAAsB,CACvB,CAAC;YAEF,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,gCAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,GAAQ,EAAE,MAAqB;QAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gCAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAErJ,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAA;AA/CY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAGkC,8DAA4B;GAF9D,iBAAiB,CA+C7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './package-definition.interface';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./package-definition.interface"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/grpc/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface IField {
|
|
2
|
+
name: string;
|
|
3
|
+
extendee: string;
|
|
4
|
+
number: number;
|
|
5
|
+
label: string;
|
|
6
|
+
type: string;
|
|
7
|
+
typeName: string;
|
|
8
|
+
}
|
|
9
|
+
export interface IMessageTypeDefinition {
|
|
10
|
+
field: IField[];
|
|
11
|
+
}
|
|
12
|
+
export interface IMessageDefinition {
|
|
13
|
+
type: IMessageTypeDefinition;
|
|
14
|
+
}
|
|
15
|
+
export interface IFoundField {
|
|
16
|
+
name: string;
|
|
17
|
+
fields?: IFoundField[];
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-definition.interface.js","sourceRoot":"","sources":["../../../src/grpc/interfaces/package-definition.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ClientGrpcProxy } from '@nestjs/microservices';
|
|
2
|
+
export declare class BaseClientGrpcProxy extends ClientGrpcProxy {
|
|
3
|
+
getService<T extends {}>(name: string): T;
|
|
4
|
+
private getMethodName;
|
|
5
|
+
private getMethodFields;
|
|
6
|
+
protected serializeError(err: any): any;
|
|
7
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseClientGrpcProxy = void 0;
|
|
4
|
+
const microservices_1 = require("@nestjs/microservices");
|
|
5
|
+
const grpc_js_1 = require("@grpc/grpc-js");
|
|
6
|
+
const rxjs_1 = require("rxjs");
|
|
7
|
+
const transformers_1 = require("../transformers");
|
|
8
|
+
class BaseClientGrpcProxy extends microservices_1.ClientGrpcProxy {
|
|
9
|
+
getService(name) {
|
|
10
|
+
const service = super.getService(name);
|
|
11
|
+
const packageDefinition = this.getClient(name);
|
|
12
|
+
const methodFields = packageDefinition[name];
|
|
13
|
+
return new Proxy(service, {
|
|
14
|
+
get: (target, prop) => {
|
|
15
|
+
if (typeof target[prop] !== 'function') {
|
|
16
|
+
return target[prop];
|
|
17
|
+
}
|
|
18
|
+
return (...args) => {
|
|
19
|
+
const methodName = this.getMethodName(target, prop);
|
|
20
|
+
const fields = this.getMethodFields(methodFields, methodName);
|
|
21
|
+
if (args.length > 0 && args[0] && typeof args[0] === 'object') {
|
|
22
|
+
const dto = args[0];
|
|
23
|
+
const structFields = Reflect.getMetadata('IS_GRPC_STRUCT_KEY', dto.constructor?.prototype) || [];
|
|
24
|
+
if (structFields.length) {
|
|
25
|
+
const modified = { ...dto };
|
|
26
|
+
structFields.forEach((field) => {
|
|
27
|
+
if (modified[field]) {
|
|
28
|
+
modified[field] = transformers_1.StructTransformer.toObject(modified[field]);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
args[0] = modified;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return target[prop].apply(target, args).pipe((0, rxjs_1.map)((response) => {
|
|
35
|
+
const structFields = fields.response
|
|
36
|
+
.filter((field) => field.typeName === 'google.protobuf.Struct')
|
|
37
|
+
.map((f) => f.name) || [];
|
|
38
|
+
if (structFields.length) {
|
|
39
|
+
structFields.forEach((field) => {
|
|
40
|
+
response[field] = transformers_1.StructTransformer.toObject(response[field]);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
return response;
|
|
44
|
+
}));
|
|
45
|
+
};
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
getMethodName(target, prop) {
|
|
50
|
+
const methodName = Object.keys(target).find((key) => key.toLowerCase() === prop.toLowerCase() && key !== prop);
|
|
51
|
+
if (!methodName) {
|
|
52
|
+
throw new Error(`Undefined methodName ${prop}`);
|
|
53
|
+
}
|
|
54
|
+
return methodName;
|
|
55
|
+
}
|
|
56
|
+
getMethodFields(service, methodName) {
|
|
57
|
+
const method = service?.[methodName];
|
|
58
|
+
return {
|
|
59
|
+
request: method.requestType.type?.field,
|
|
60
|
+
response: method.responseType.type?.field,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
serializeError(err) {
|
|
64
|
+
if (err.code === grpc_js_1.status.UNAVAILABLE) {
|
|
65
|
+
setTimeout(() => process.exit(69), 2000);
|
|
66
|
+
}
|
|
67
|
+
return new microservices_1.RpcException(err);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.BaseClientGrpcProxy = BaseClientGrpcProxy;
|
|
71
|
+
//# sourceMappingURL=base-client-grpc.proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-client-grpc.proxy.js","sourceRoot":"","sources":["../../../src/grpc/proxies/base-client-grpc.proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './base-client-grpc.proxy';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./base-client-grpc.proxy"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/grpc/proxies/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { MethodDefinition, PackageDefinition, ServiceDefinition } from '@grpc/proto-loader';
|
|
2
|
+
import { IField, IFoundField, IMessageDefinition } from '../interfaces';
|
|
3
|
+
export declare class GrpcPackageDefinitionService {
|
|
4
|
+
private packageDefinition;
|
|
5
|
+
private packageName;
|
|
6
|
+
setPackageDefinition(pkg: PackageDefinition, packageName: string): void;
|
|
7
|
+
getPackageDefinition(): PackageDefinition;
|
|
8
|
+
getPackageName(): string;
|
|
9
|
+
getServiceDefinition(serviceName: string): ServiceDefinition | undefined;
|
|
10
|
+
getMessageDefinition(messageName: string): IMessageDefinition;
|
|
11
|
+
getMethodDefinition(serviceName: string, rpc: string): MethodDefinition<any, any> | undefined;
|
|
12
|
+
getRequestFields(serviceName: string, rpc: string): IField[];
|
|
13
|
+
getResponseFields(serviceName: string, rpc: string): IField[];
|
|
14
|
+
private getFields;
|
|
15
|
+
findFieldsByType(fields: IField[], typeName: string): IFoundField[];
|
|
16
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.GrpcPackageDefinitionService = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let GrpcPackageDefinitionService = class GrpcPackageDefinitionService {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.packageDefinition = null;
|
|
14
|
+
}
|
|
15
|
+
setPackageDefinition(pkg, packageName) {
|
|
16
|
+
this.packageDefinition = pkg;
|
|
17
|
+
this.packageName = packageName;
|
|
18
|
+
}
|
|
19
|
+
getPackageDefinition() {
|
|
20
|
+
if (!this.packageDefinition) {
|
|
21
|
+
throw new Error('PackageDefinition not initialized');
|
|
22
|
+
}
|
|
23
|
+
return this.packageDefinition;
|
|
24
|
+
}
|
|
25
|
+
getPackageName() {
|
|
26
|
+
if (!this.packageName) {
|
|
27
|
+
throw new Error('PackageDefinition not initialized');
|
|
28
|
+
}
|
|
29
|
+
return this.packageName;
|
|
30
|
+
}
|
|
31
|
+
getServiceDefinition(serviceName) {
|
|
32
|
+
const packageDefinition = this.getPackageDefinition();
|
|
33
|
+
return packageDefinition[`${this.getPackageName()}.${serviceName}`];
|
|
34
|
+
}
|
|
35
|
+
getMessageDefinition(messageName) {
|
|
36
|
+
const packageDefinition = this.getPackageDefinition();
|
|
37
|
+
const message = packageDefinition[messageName];
|
|
38
|
+
if (!message) {
|
|
39
|
+
return packageDefinition[`${this.getPackageName()}.${messageName}`];
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return message;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
getMethodDefinition(serviceName, rpc) {
|
|
46
|
+
const serviceDefinition = this.getServiceDefinition(serviceName);
|
|
47
|
+
if (!serviceDefinition) {
|
|
48
|
+
return serviceDefinition;
|
|
49
|
+
}
|
|
50
|
+
return serviceDefinition[rpc];
|
|
51
|
+
}
|
|
52
|
+
getRequestFields(serviceName, rpc) {
|
|
53
|
+
const messageTypeDefinition = this.getMethodDefinition(serviceName, rpc)?.requestType;
|
|
54
|
+
return this.getFields(messageTypeDefinition);
|
|
55
|
+
}
|
|
56
|
+
getResponseFields(serviceName, rpc) {
|
|
57
|
+
const messageTypeDefinition = this.getMethodDefinition(serviceName, rpc)?.responseType;
|
|
58
|
+
return this.getFields(messageTypeDefinition);
|
|
59
|
+
}
|
|
60
|
+
getFields(definition) {
|
|
61
|
+
return definition?.type?.field || [];
|
|
62
|
+
}
|
|
63
|
+
findFieldsByType(fields, typeName) {
|
|
64
|
+
return fields.filter((f) => f.type === 'TYPE_MESSAGE').map((f) => {
|
|
65
|
+
if (f.typeName === typeName) {
|
|
66
|
+
return { name: f.name };
|
|
67
|
+
}
|
|
68
|
+
return { name: f.name, fields: this.findFieldsByType(this.getFields(this.getMessageDefinition(f.typeName)), typeName) };
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
exports.GrpcPackageDefinitionService = GrpcPackageDefinitionService;
|
|
73
|
+
exports.GrpcPackageDefinitionService = GrpcPackageDefinitionService = __decorate([
|
|
74
|
+
(0, common_1.Injectable)({ scope: common_1.Scope.DEFAULT })
|
|
75
|
+
], GrpcPackageDefinitionService);
|
|
76
|
+
//# sourceMappingURL=grpc-package-definition.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grpc-package-definition.service.js","sourceRoot":"","sources":["../../../src/grpc/services/grpc-package-definition.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './struct';
|