Generalize npm dependency support for generated js code
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 32/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- cpp, javascript
- Domínio
- compilers
Direção de pesquisa
Comece comparando javascript/net/grpc/web/grpc_generator.cc, na área da lógica de caminho de importação mencionada, com src/google/protobuf/compiler/js/js_generator.cc do protobuf. Determine o comportamento da opção de importação e do caminho do pacote necessário para generalizar a exceção atual de google-protobuf. Considera-se concluído quando os imports gerados puderem resolver explicitamente as dependências a partir de pacotes npm especificados pelo usuário, preservando os imports relativos quando nenhum override for fornecido.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Sister issue of https://github.com/grpc/grpc-web/issues/584 (copying content)
All generated code currently generates js import paths with similar structure with that of the imported .proto files.
The one exception for protobuf well-known types - google-protobuf based ont he import prefix:
https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/compiler/js/js_generator.cc#L128
string GetRootPath(const std::string& from_filename,
const std::string& to_filename) {
if (to_filename.find("google/protobuf") == 0) {
// Well-known types (.proto files in the google/protobuf directory) are
// assumed to come from the 'google-protobuf' npm package. We may want to
// generalize this exception later by letting others put generated code in
// their own npm packages.
return "google-protobuf/";
}
Equivalent code in grpc-web:
https://github.com/grpc/grpc-web/blob/master/javascript/net/grpc/web/grpc_generator.cc#L461
This will generate something like
import * as google_api_annotations_pb from './google/api/annotations_pb';
import * as google_protobuf_timestamp_pb from 'google-protobuf/google/protobuf/timestamp_pb';
An import option would allow users to explicitly override the relative path and specify a npm package at .proto import could be the right approach to generalize this.
- Linguagem predominante
- JavaScript
- Estrelas
- 470
- Forks
- 92
- Merge médio
- 1d 12h
- PRs com merge (30d)
- 6
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
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
-
documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
andromarces/agent-loops#886 ·
Mantenedores costumam responder em até 1 dia
-
bug effort:low model:light plan planner:gpt-6-1-sol tests
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
B: visual
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
FreeTubeApp/FreeTube#9929 ·
Mantenedores costumam responder em até 1 dia
-
🐛 Bug: `--clear-screen` not very useful (at least not for dealing with large test/error output)Abertastatus: in triage type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
mochajs/mocha#6428 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Fixed-position outer <svg> lands outside a clip after scroll; fixed HTML boxes are re-anchoredAberta🔧 in development
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100