protocolbuffers / protocolbuffers/protobuf-javascript
Generating map<K, V> on javascript type issue
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 471
- Forks
- 91
- Ø Merge
- 3 Std. 57 Min.
- Gemergte PRs (30 T.)
- 2
Beschreibung
What version of protobuf and what language are you using?
Version: master/v3.18
Language: Javascript
What operating system (Linux, Windows, ...) and version? Linux
What runtime / compiler are you using (e.g., python version or gcc version) Nodejs
What did you do?
Steps to reproduce the behavior:
- Trying to export type
map<K, V>so I created aprotofile like this:
message MessageResponse {
string _id = 1;
string title = 2;
bool disabled = 3;
map<string,string> metadata = 4;
}
- Converting it using this some commands like this:
protoc -I=/libraries/protos/ /libraries/protos/src/*.proto /libraries/protos/src/**/*.proto --plugin=/libraries/protos/binaries/linux/protoc-gen-grpc-web --js_out=import_style=commonjs,binary:/libraries/protos/build/typescript --grpc-web_out=import_style=typescript,mode=grpcwebtext:/libraries/protos/build/typescript --experimental_allow_proto3_optional
- What I am getting on
.tsfiles is something like:
export namespace MessageResponse {
export type AsObject = {
id: string,
title: string,
disabled: boolean,
metadataMap: Array<[string, string]>,
}
}
- Well we can see there is a suffix called
Mapadded to my field name! also the generated type isArray<[string, string]>. but what we were expecting, based on language guide here, where an object of{"k": v, …}, likeRecord<string, V>
What did you expect to see
An object like: Record<string, string>
What did you see instead?
Array<[string, string]>
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie mit dem bereitgestellten .proto-Map-Feld und dem protoc-Befehl und prüfen Sie anschließend die generierte MessageResponse .ts AsObject-Deklaration. Reproduzieren Sie die Ausgabe mit dem angegebenen master/v3.18- und Node.js-Setup; abgeschlossen ist dies, wenn der generierte Map-Typ und die Feldbenennung der dokumentierten JavaScript/TypeScript-Erwartung entsprechen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, nodejs, typescript
- Bereich
- api, backend-api-design
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100