UNPKG

@russ-b/nestjs-common-tools

Version:
62 lines 2.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PackageDefinitionManager = void 0; class PackageDefinitionManager { constructor(packageName, packageDefinition) { this.packageName = packageName; this.packageDefinition = packageDefinition; } getPackageName() { return this.packageName; } getServiceDefinition(serviceName) { const serviceDefinition = this.packageDefinition[`${serviceName}`]; if (!serviceDefinition) { return this.packageDefinition[`${this.packageName}.${serviceName}`]; } return serviceDefinition; } getMessageDefinition(messageName) { const message = this.packageDefinition[messageName]; if (!message) { return this.packageDefinition[`${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 || []; } 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.PackageDefinitionManager = PackageDefinitionManager; //# sourceMappingURL=package-definition-manager.js.map