[JS] Add `fromObject` method to take an AsObject type and return a T.
@lukesandberg já está trabalhando nisso.
Desde 11/3/2022.
Avaliação
Esta issue ainda não foi avaliada.
Descrição
What language does this apply to?
JS/TS
Describe the problem you are trying to solve.
In JS, many different libraries expect to work with dictionaries, basically Record<A, B> or lists of these, to do things like state management in single page apps, list operations like find, slice, zip, etc. and more. Having the ability to freely move between a Message and a JSON object would make it MUCH easier to interoperate with different tools.
Currently, my message types get compiled to something like the following:
export class Polygon extends jspb.Message {
// getters and setters here
serializeBinary(): Uint8Array;
toObject(includeInstance?: boolean): Polygon.AsObject;
static toObject(includeInstance: boolean, msg: Polygon): Polygon.AsObject;
static serializeBinaryToWriter(message: Polygon, writer: jspb.BinaryWriter): void;
static deserializeBinary(bytes: Uint8Array): Polygon;
static deserializeBinaryFromReader(message: Polygon, reader: jspb.BinaryReader): Polygon;
}
Describe the solution you'd like
static fromObject(from: Polygon.AsObject): Polygon;
Describe alternatives you've considered
Writing a generic function to parse the field descriptors, but I don't know enough to make it work correctly, PLUS, it seems like a much better thing to be provided out of the box.
Additional context
- Linguagem predominante
- JavaScript
- Estrelas
- 471
- Forks
- 91
- Merge médio
- 1d 12h
- PRs com merge (30d)
- 6
Preparar o ambiente
Ainda não verificamos os arquivos de configuração deste projeto. Comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de protocolbuffers/protobuf-javascript
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 30/100
protocolbuffers/protobuf-javascript#248 · 1 comentário · 13 reações ·
-
question
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
protocolbuffers/protobuf-javascript#222 · 9 comentários ·
-
Why map.js sort keys?Abertaenhancement port-fix triaged
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
protocolbuffers/protobuf-javascript#185 · 1 comentário ·
-
enhancement port-fix triaged
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
protocolbuffers/protobuf-javascript#182 · 3 comentários · 1 reação ·
Todas as issues de protocolbuffers/protobuf-javascript
Issues semelhantes
-
bug good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
amponce/archive-movie-browser#354 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
saayam-for-all/webapp#1870 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Imageomics/OpenCite#66 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
chr15m/twiiit.com#20 ·
-
documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
antropos17/Aegis#629 ·
Mantenedores costumam responder em até 4 dias