@@ -95,13 +95,15 @@ For Closure imports, `protoc` will generate a single output file
95
95
(` myproto_libs.js ` in this example). The generated file will ` goog.provide() `
96
96
all of the types defined in your .proto files. For example, for the unit
97
97
tests the generated files contain many ` goog.provide ` statements like:
98
+
98
99
``` js
99
- goog .provide (' proto.google.protobuf.DescriptorProto' );
100
- goog .provide (' proto.google.protobuf.DescriptorProto.ExtensionRange' );
101
- goog .provide (' proto.google.protobuf.DescriptorProto.ReservedRange' );
102
- goog .provide (' proto.google.protobuf.EnumDescriptorProto' );
103
- goog .provide (' proto.google.protobuf.EnumOptions' );
100
+ goog .provide (' proto.google.protobuf.DescriptorProto' );
101
+ goog .provide (' proto.google.protobuf.DescriptorProto.ExtensionRange' );
102
+ goog .provide (' proto.google.protobuf.DescriptorProto.ReservedRange' );
103
+ goog .provide (' proto.google.protobuf.EnumDescriptorProto' );
104
+ goog .provide (' proto.google.protobuf.EnumOptions' );
104
105
```
106
+
105
107
The generated code will also ` goog.require() ` many types in the core library,
106
108
and they will require many types in the Google Closure library. So make sure
107
109
that your ` goog.provide() ` / ` goog.require() ` setup can find all of your
@@ -110,11 +112,13 @@ Google Closure library itself.
110
112
111
113
Once you've done this, you should be able to import your types with
112
114
statements like:
115
+
113
116
``` js
114
- goog .require (' proto.my.package.MyMessage' );
117
+ goog .require (' proto.my.package.MyMessage' );
115
118
116
- var message = proto .my .package .MyMessage ();
119
+ var message = proto .my .package .MyMessage ();
117
120
```
121
+
118
122
If unfamiliar with Closure or its compiler, consider reviewing
119
123
[ Closure documentation] ( https://developers.google.com/closure/library ) .
120
124
@@ -137,11 +141,13 @@ to build it first by running:
137
141
138
142
Once you've done this, you should be able to import your types with
139
143
statements like:
144
+
140
145
``` js
141
- var messages = require (' ./messages_pb' );
146
+ var messages = require (' ./messages_pb' );
142
147
143
- var message = new messages.MyMessage ();
148
+ var message = new messages.MyMessage ();
144
149
```
150
+
145
151
The ` --js_out ` flag
146
152
-------------------
147
153
@@ -168,17 +174,19 @@ API
168
174
169
175
The API is not well-documented yet. Here is a quick example to give you an
170
176
idea of how the library generally works:
177
+
171
178
``` js
172
- var message = new MyMessage ();
179
+ var message = new MyMessage ();
173
180
174
- message .setName (" John Doe" );
175
- message .setAge (25 );
176
- message .setPhoneNumbers ([" 800-555-1212" , " 800-555-0000" ]);
181
+ message .setName (" John Doe" );
182
+ message .setAge (25 );
183
+ message .setPhoneNumbers ([" 800-555-1212" , " 800-555-0000" ]);
177
184
178
- // Serializes to a UInt8Array.
179
- var bytes = message .serializeBinary ();
185
+ // Serializes to a UInt8Array.
186
+ var bytes = message .serializeBinary ();
180
187
181
- var message2 = MyMessage .deserializeBinary (bytes);
188
+ var message2 = MyMessage .deserializeBinary (bytes);
182
189
```
190
+
183
191
For more examples, see the tests. You can also look at the generated code
184
192
to see what methods are defined for your generated messages.
0 commit comments