Generalize npm dependency support for generated js code
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 32/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- cpp, javascript
- Área
- compilers
Línea de trabajo
Comienza comparando javascript/net/grpc/web/grpc_generator.cc, en torno a la lógica de rutas de importación referenciada, con src/google/protobuf/compiler/js/js_generator.cc de protobuf. Determina el comportamiento de la opción de importación y de la ruta del paquete necesario para generalizar la excepción actual de google-protobuf. Se considera completado cuando los imports generados pueden resolver explícitamente las dependencias desde paquetes npm especificados por el usuario, preservando los imports relativos cuando no se proporciona ningún override.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- JavaScript
- Estrellas
- 471
- Forks
- 91
- Merge medio
- 1 d 12 h
- PR fusionados (30 d)
- 6
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de protocolbuffers/protobuf-javascript
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
protocolbuffers/protobuf-javascript#248 · 1 comentario · 13 reacciones ·
-
question
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
protocolbuffers/protobuf-javascript#222 · 9 comentarios ·
-
Why map.js sort keys?Abiertoenhancement port-fix triaged
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
protocolbuffers/protobuf-javascript#185 · 1 comentario ·
-
enhancement port-fix triaged
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
protocolbuffers/protobuf-javascript#182 · 3 comentarios · 1 reacción ·
Todos los issues de protocolbuffers/protobuf-javascript
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
keyxmakerx/Chronicle#967 ·
Los mantenedores suelen responder en 1 día
-
good first issue hacktoberfest
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
RogueAlg0/taken#386 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
external-issue to-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
LearningCircuit/local-deep-research#7067 ·
Los mantenedores suelen responder en 1 día