@russ-b/nestjs-common-tools
Version:
NestJS utility tools
61 lines • 2.05 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PackageDefinitionReader = void 0;
class PackageDefinitionReader {
constructor(packageName, def) {
this.packageName = packageName;
this.def = def;
this.messageTypes = this.loadMessageTypes();
}
getPackageName() {
return this.packageName;
}
getServiceDefinition(serviceName) {
const serviceDefinition = this.def[`${serviceName}`];
if (!serviceDefinition) {
return this.def[`${this.packageName}.${serviceName}`];
}
return serviceDefinition;
}
getMessageDescriptor(messageName) {
const message = this.def[messageName];
if (!message) {
return this.def[`${this.getPackageName()}.${messageName}`];
}
else {
return message;
}
}
getMethodDefinition(serviceName, rpc) {
const serviceDefinition = this.getServiceDefinition(serviceName);
if (!serviceDefinition) {
return undefined;
}
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 || [];
}
loadMessageTypes() {
const map = new Map();
for (const [key, value] of Object.entries(this.def)) {
if (typeof value === 'object' && value?.type?.field) {
map.set(key, value.type.field);
}
}
return map;
}
getMessageTypes() {
return this.messageTypes;
}
}
exports.PackageDefinitionReader = PackageDefinitionReader;
//# sourceMappingURL=package-definition.reader.js.map