У меня проблема с сгенерированными прототипами.
Я использую самую последнюю версию protoc-gen-grpc-web
, которую я получил от здесь (версия 1.0.7) .
Примечание. У меня была такая же проблема как на MacOS, так и на Windows, а также на версии 1.0.5.
Проблема, с которой я столкнулся, состоит в том, что мои сгенерированные определения отсутствует .
, отделяющий Class
от его пространства имен.
Например. мой вывод будет выглядеть следующим образом:
import * as jspb from "google-protobuf"
import * as google_protobuf_timestamp_pb from 'google-protobuf/google/protobuf/timestamp_pb';
import * as google_protobuf_empty_pb from 'google-protobuf/google/protobuf/empty_pb';
import * as common_basic_pb from './common/basic_pb';
import * as contact_mechanism_pb from './contact_mechanism_pb';
import * as banking_detail_pb from './banking_detail_pb';
...
export namespace IncomeTax {
export type AsObject = {
id: string,
personId: string,
dateCreated?: google_protobuf_timestamp_pb.Timestamp.AsObject,
lastUpdated?: google_protobuf_timestamp_pb.Timestamp.AsObject,
fromDate?: google_protobuf_timestamp_pb.Timestamp.AsObject,
thruDate?: google_protobuf_timestamp_pb.Timestamp.AsObject,
taxNumber: string,
country?: contact_mechanism_pbCountry.AsObject,
}
}
См. строку country?: contact_mechanism_pbCountry.AsObject,
.
contact_mechanism_pbCountry
должно быть contact_mechanism_pb.Country
.
Это происходит для каждого случая из common_basic_pb
, contact_mechanism_pb
и banking_details_pb
.
Но не для случаев google_protobuf_timestamp_pb
и google_protobuf_empty_pb
.
Вот как выглядит мой gen-protos
скрипт:
#!/bin/bash
mkdir -p ./src/gen
protoc -I=../protos/ \
../protos/*.proto \
../protos/**/*.proto \
../protos/**/**/*.proto \
../protos/**/**/**/*.proto \
--js_out=import_style=commonjs:./src/gen \
--grpc-web_out=import_style=commonjs+dts,mode=grpcwebtext:./src/gen
Я пробовал так много разных вещей, но я просто не могу получить ожидаемый результат с помощью этого инструмента.