UNPKG

@russ-b/nestjs-common-tools

Version:
82 lines 3.43 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.GrpcPackageDefinitionService = void 0; const common_1 = require("@nestjs/common"); let GrpcPackageDefinitionService = class GrpcPackageDefinitionService { constructor() { this.packageDefinition = null; } setPackageDefinition(pkg, packageName) { this.packageDefinition = pkg; this.packageName = packageName; } getPackageDefinition() { if (!this.packageDefinition) { throw new Error('PackageDefinition not initialized'); } return this.packageDefinition; } getPackageName() { if (!this.packageName) { throw new Error('PackageDefinition not initialized'); } return this.packageName; } getServiceDefinition(serviceName) { const packageDefinition = this.getPackageDefinition(); return packageDefinition[`${this.getPackageName()}.${serviceName}`]; } getMessageDefinition(messageName) { const packageDefinition = this.getPackageDefinition(); const message = packageDefinition[messageName]; if (!message) { return packageDefinition[`${this.getPackageName()}.${messageName}`]; } else { return message; } } getMethodDefinition(serviceName, rpc) { const serviceDefinition = this.getServiceDefinition(serviceName); if (!serviceDefinition) { return serviceDefinition; } return serviceDefinition[rpc]; } getRequestFields(serviceName, rpc) { const messageTypeDefinition = this.getMethodDefinition(serviceName, rpc)?.requestType; return this.getFields(messageTypeDefinition); } getResponseFields(serviceName, rpc) { const messageTypeDefinition = this.getMethodDefinition(serviceName, rpc)?.responseType; return this.getFields(messageTypeDefinition); } getFields(definition) { return definition?.type?.field || []; } findFieldsByType(fields, typeName) { return fields .filter((f) => f.type === 'TYPE_MESSAGE') .map((f) => { if (f.typeName === typeName) { return { name: f.name }; } return { name: f.name, fields: this.findFieldsByType(this.getFields(this.getMessageDefinition(f.typeName)), typeName), }; }) .filter((f) => f.fields === undefined || f.fields.length > 0); } }; exports.GrpcPackageDefinitionService = GrpcPackageDefinitionService; exports.GrpcPackageDefinitionService = GrpcPackageDefinitionService = __decorate([ (0, common_1.Injectable)({ scope: common_1.Scope.DEFAULT }) ], GrpcPackageDefinitionService); //# sourceMappingURL=grpc-package-definition.service.js.map