protoc-gen-tsd
Version:
Protocol Buffers Compiler(protoc) plugin for TypeScript - Generate definition file(d.ts)
46 lines (45 loc) • 1.96 kB
TypeScript
import { FileDescriptorProto, FieldDescriptorProto, DescriptorProto, OneofDescriptorProto } from 'google-protobuf/google/protobuf/descriptor_pb';
import { ProtoAbstractSyntaxTreeMap } from '../proto-ast-map';
import { IEnumDescriptorProtoModel } from './enum-descriptor-formatter';
import { IExtensionDescriptorProtoModel } from './extension-descriptor-formatter';
import { IOneofDescriptorProtoModel } from './oneof-descriptor-formatter';
export interface IMessageType {
messageName: string;
oneofGroups: FieldDescriptorProto[][];
oneofDeclList: OneofDescriptorProto[];
fields: IMessageFieldType[];
nestedTypes: IMessageDescriptorProtoModel[];
formattedEnumListStr: IEnumDescriptorProtoModel[];
formattedOneofListStr: IOneofDescriptorProtoModel[];
formattedExtListStr: IExtensionDescriptorProtoModel[];
}
export interface IMessageDescriptorProtoModel {
indent: string;
BYTES_TYPE: number;
MESSAGE_TYPE: number;
message: IMessageType;
}
export declare const DefaultMessageType: string;
export interface IMessageFieldType {
snakeCaseName: string;
camelCaseName: string;
camelUpperName: string;
fieldObjectType: string;
type: FieldDescriptorProto.Type;
exportType: string;
isMapField: boolean;
mapFieldInfo?: IMessageMapField;
isRepeatField: boolean;
isOptionalValue: boolean;
canBeUndefined: boolean;
hasClearMethodCreated: boolean;
hasFieldPresence: boolean;
}
export declare const DefaultMessageFieldType: string;
export interface IMessageMapField {
keyType: FieldDescriptorProto.Type;
keyTypeName: string;
valueType: FieldDescriptorProto.Type;
valueTypeName: string;
}
export declare function formatMessageTypeDescriptorProto(protoFileName: string, protoAbstractSyntaxTreeMap: ProtoAbstractSyntaxTreeMap, messageTypeDescriptorProto: DescriptorProto, indent: string, fileDescriptorProto: FileDescriptorProto): IMessageDescriptorProtoModel;