2 votes

Problème avec les fichiers de définition TypeScript lors de la génération des définitions proto avec protoc-gen-grpc-web

Je rencontre un problème avec mes définitions proto générées.

J'utilise la version la plus récente de protoc-gen-grpc-web que j'ai obtenue ici (version 1.0.7).

Remarque : J'ai eu le même problème sur MacOS et Windows ainsi que sur la version 1.0.5.

Le problème que j'ai est que mes définitions générées manquent du . séparant la Class de son espace de noms.

Par exemple, ma sortie serait quelque chose comme suit :

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,
  }
}

Regardez la ligne country?: contact_mechanism_pbCountry.AsObject,.

contact_mechanism_pbCountry devrait être contact_mechanism_pb.Country.

Cela se produit pour chaque cas de common_basic_pb, contact_mechanism_pb et banking_details_pb.

Mais pas pour les cas de google_protobuf_timestamp_pb et google_protobuf_empty_pb.

Voici à quoi ressemble mon script 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

J'ai essayé tellement de choses différentes mais je n'arrive juste pas à obtenir la sortie attendue avec cet outil.

3voto

Barry Michael Doyle Points 2501

Ce problème a été résolu par un correctif qui a été fusionné dans le projet il y a 29 jours. Les propriétaires du projet ont annoncé qu'ils feront bientôt une nouvelle version.

Plus de détails à ce sujet peuvent être trouvés ici.

La nouvelle version de l'outil sera version 1.0.8

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X