UNPKG

protoc-gen-grpc

Version:

Protocol Buffers Compiler (protoc) plugin for generating grpc interfaces in TypeScript..

24 lines (18 loc) 927 B
import {FieldDescriptorProto, OneofDescriptorProto} from 'google-protobuf/google/protobuf/descriptor_pb'; import {Printer} from '../../Printer'; import {Utility} from '../../Utility'; export namespace OneOf { export function print(oneOfDescriptor: OneofDescriptorProto, fieldsDescriptor: Array<FieldDescriptorProto>, indentLevel: number): string { let oneOfName = Utility.oneOfName(oneOfDescriptor.getName()); let oneOfNameUpper = oneOfDescriptor.getName().toUpperCase(); const printer = new Printer(indentLevel); printer.printEmptyLn(); printer.printLn(`export enum ${oneOfName}Case {`); printer.printIndentedLn(`${oneOfNameUpper}_NOT_SET = 0,`); fieldsDescriptor.forEach(field => { printer.printIndentedLn(`${field.getName().toUpperCase()} = ${field.getNumber()},`); }); printer.printLn('}'); return printer.output; } }