@russ-b/nestjs-common-tools
Version:
NestJS utility tools
82 lines • 3.43 kB
JavaScript
;
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