grpc-tools-ts
Version:
Generate d.ts definitions for generated js files from grpc_tools_node_protoc
28 lines (21 loc) • 941 B
text/typescript
import {FieldDescriptorProto, OneofDescriptorProto} from "google-protobuf/google/protobuf/descriptor_pb";
import {TplEngine} from "../../TplEngine";
import {Utility} from "../../Utility";
export namespace OneofFormatter {
export function format(oneofDecl: OneofDescriptorProto,
oneofFields: Array<FieldDescriptorProto>,
indentLevel: number): string {
let oneofName = Utility.oneOfName(oneofDecl.getName());
let oneofNameUpper = oneofName.toUpperCase();
let fields: { [key: string]: number } = {};
oneofFields.forEach(field => {
fields[field.getName().toUpperCase()] = field.getNumber();
});
return TplEngine.render('partial/oneof', {
indent: Utility.generateIndent(indentLevel),
oneofName: oneofName,
oneofNameUpper: oneofNameUpper,
fields: fields,
});
}
}