Add enum message parsing

This commit is contained in:
2024-06-27 21:09:40 +09:30
parent da8861cde2
commit d2203b575c
3 changed files with 90 additions and 12 deletions

View File

@@ -6,6 +6,7 @@ export enum MessageTypeEnum {
Map = 'map',
Object = 'object',
Raw = 'raw',
Enum = 'enum',
}
export interface StringMessage extends MessageConfiguration {
@@ -34,6 +35,10 @@ export interface ObjectMessage extends MessageConfiguration {
export interface RawMessage extends MessageConfiguration {}
export interface EnumMessage extends MessageConfiguration {
options: string[];
}
export interface MessageConfiguration {
type: MessageTypeEnum;
}
@@ -76,17 +81,29 @@ export const ObjectMessage = (messageDefinition: ProtoMessage) => ({
export const RawMessage = (): RawMessage => ({ type: MessageTypeEnum.Raw });
export const EnumMessage = (options: string[]) => ({
type: MessageTypeEnum.Enum,
options,
});
export interface ProtoMessageField {
name: string;
configuration: MessageConfiguration;
value: any;
}
export interface ProtoMessage {
export interface ProtoBase {
name: string;
}
export interface ProtoMessage extends ProtoBase {
values: ProtoMessageField[];
}
export interface ProtoEnum extends ProtoBase {
options: string[];
}
export const UnknownProto = (name: string): ProtoMessage => ({
name,
values: [{ name: 'Raw JSON', configuration: RawMessage(), value: '' }],