diff options
author | 2016-06-17 11:31:22 -0700 | |
---|---|---|
committer | 2016-06-17 11:31:22 -0700 | |
commit | 20e5d9eb0a5f4442b7fd4427a66cd5fd01065f9a (patch) | |
tree | 48d9d1a206543893ed79b5e884d9f79d7c858c6f /src | |
parent | 245e997084d04f3aef839327506a5a070e08ba14 (diff) |
Update Node plugin to handle well known type changes
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/node_generator.cc | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/compiler/node_generator.cc b/src/compiler/node_generator.cc index 986b97c26e..1fe090d17a 100644 --- a/src/compiler/node_generator.cc +++ b/src/compiler/node_generator.cc @@ -74,8 +74,16 @@ grpc::string GetJSMessageFilename(const grpc::string& filename) { // Given a filename like foo/bar/baz.proto, returns the root directory // path ../../ -grpc::string GetRootPath(const grpc::string& filename) { - size_t slashes = std::count(filename.begin(), filename.end(), '/'); +grpc::string GetRootPath(const grpc::string& from_filename, + const grpc::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/"; + } + size_t slashes = std::count(from_filename.begin(), from_filename.end(), '/'); if (slashes == 0) { return "./"; } @@ -90,7 +98,7 @@ grpc::string GetRootPath(const grpc::string& filename) { // from_file, assuming that both paths are relative to the same directory grpc::string GetRelativePath(const grpc::string& from_file, const grpc::string& to_file) { - return GetRootPath(from_file) + to_file; + return GetRootPath(from_file, to_file) + to_file; } /* Finds all message types used in all services in the file, and returns them |