UNPKG

@russ-b/nestjs-common-tools

Version:
34 lines 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FieldSelector = void 0; const proto_constants_1 = require("./constants/proto.constants"); class FieldSelector { constructor(fields, messageTypes) { this.fields = fields; this.messageTypes = messageTypes; } findFieldsByType(typeName, fields) { return (fields ? fields : this.fields) .filter(this.isMessageType) .map((field) => this.mapField(field, typeName)) .filter((f) => f.fields === undefined || f.fields.length > 0); } isMessageType(field) { return field.type === proto_constants_1.TYPE_MESSAGE; } mapField(field, typeName) { if (field.typeName === typeName) { return { name: field.name }; } const fieldDescriptor = this.messageTypes.get(field.typeName); if (!fieldDescriptor) { throw new Error(`Could not find field definition for type: ${field.typeName}`); } return { name: field.name, fields: this.findFieldsByType(typeName, fieldDescriptor), }; } } exports.FieldSelector = FieldSelector; //# sourceMappingURL=field.selector.js.map