Проблема с файлами определений TypeScript при создании прототипов с помощью proto c -gen-grp c -web - PullRequest
2 голосов
/ 30 апреля 2020

У меня проблема с сгенерированными прототипами.

Я использую самую последнюю версию 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

Я пробовал так много разных вещей, но я просто не могу получить ожидаемый результат с помощью этого инструмента.

1 Ответ

3 голосов
/ 06 мая 2020

Эта проблема была решена с помощью исправления, которое было объединено с проектом 29 дней go. Владельцы проекта объявили, что скоро выпустят новый релиз.

Более подробную информацию можно найти здесь .

Новая версия инструмента будет version 1.0.8

...