Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate ES6-style code (classes, exports, imports) #156

Draft
wants to merge 27 commits into
base: main
Choose a base branch
from

Conversation

gonzojive
Copy link

There is a long-standing request for ES6 module generation: #75. This PR mostly adds such support, though it needs to be cleaned up, fixed and tested.

The code generator should still produce the same output for previously supported inputs. The es6 option changes the output style significantly.

gonzojive and others added 26 commits December 4, 2022 14:18
…rated code.

The introduction of this type changes the signatures of many generator methods
that need to know how to print a JavaScript expression that refers to a given
proto message or enum.
…rocessors.

The import paths for proto imports don't work with our bazel rules, so we
post-process the protobuf-javascript generator's output to rewrite the
imports. This is easier if each import has a comment indicating the
corresponding proto file.
Before this, the parent type would be returned. Now, <parent type>.<child type>
is returned.
@goulashify
Copy link

This is awesome!

Enable compilation of protos which use the `extend` keyword. A gRPC-web service broke es6 compilation due to importing [`longrunning/operations.proto`](https://github.com/googleapis/googleapis/blob/master/google/longrunning/operations.proto), which uses annotations, which use extensions.

Testing of this is being done in `rules_ts_proto` repo: [PR#9](https://github.com/gonzojive/rules_ts_proto/pull/9/files)
@rinarakaki
Copy link

Any update?

@gonzojive
Copy link
Author

The branch works and has been updated with many fixes. We use it in web apps at work. However, last I checked, it will not be accepted upstream because the change is so large.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants