Protobuf js перечисления из строк больше не работает - PullRequest
0 голосов
/ 23 апреля 2020

Итак, мы недавно обновились до более новой версии v6, и похоже, что в строках есть поврежденные перечисления. Мой гугл-фу сильно подвел меня.

Мы привыкли делать что-то вроде

enum Fooenum{
    None=0;
    Something=1;
    Somethingelse=2;
}

message Foomessage{
    Fooenum fe=1;
}
var root = new protobuf.Root();
root.loadSync(protos);

var Foomessage = root.lookup("Foomessage");

var foomessage = Foomessage.create({fe: "Something});

Это использование работает нормально, но теперь оно выдает ошибки и дает неопределенное для foomessage. Я переместил его в объект javascript, и он работает для этого случая с использованием fromObject, но у нас есть некоторые сообщения, которые состоят из встроенных сообщений (oneofs), которые состоят из другого oneofs. Это сообщение не работает в любом случае.

Как вы предполагаете установить перечисления сейчас? Я знаю, что могу сделать это через целые числа, но я не хочу помнить, что Something = 1. Я мог бы создавать Объекты, чтобы отражать перечисления, но это просто кошмар обслуживания. Какой синтаксис мне не хватает. Я попробовал Fooenum. Что-то, но это тоже не работает.

...