Ok, that's good you were able to get things working with CommonJS-style
imports. To parse the raw bytes into an object you will want to call
MyProto.deserializeBinary(bytes).

On Wed, Feb 15, 2017 at 3:42 PM, Gunnar Gissel - NOAA Federal <
[email protected]> wrote:

> FWIW, switching to commonjs style imports seems to work.
>
> Now I'm wondering how do I get from bytes to objects?  Passing the bytes
> into the generated constructor doesn't seem to work - I'm still seeing
> binary values where I expect to see textual values
>
> On Wed, Feb 15, 2017 at 10:20 AM, <[email protected]> wrote:
>
>> I don't expect that the code got pulled into the protobuf library because
>> I'm pulling the generated javascript files out of a jar created by maven
>> and using them on a box that has been set up solely for doing the
>> javascript side of things.  The protobuf install there is via npm, although
>> I had to add message.js and map.js files to the closure compiler to get it
>> working there.  It is possible I've gone about acquiring protobuf for my
>> javascript build entirely wrong, though.
>>
>> On Wednesday, February 15, 2017 at 10:16:42 AM UTC-9, [email protected]
>> wrote:
>>>
>>> Sure thing!
>>>
>>> Gruntfile.js:
>>>
>>> module.exports = function(grunt){
>>>
>>>   require('google-closure-compiler').grunt(grunt);
>>>
>>>   grunt.initConfig({
>>>     pkg: grunt.file.readJSON('package.json'),
>>>     'closure-compiler': {
>>>       my_target: {
>>>         files: {
>>>           'target/full.js': ['js/**.js']
>>>         },
>>>         options: {
>>>           js: [
>>>             'node_modules/google-closure-library/**.js',
>>>             '!node_modules/google-closure-library/**_test.js',
>>>             '!node_modules/google-closure-library/**_perf.js',
>>>             '!node_modules/google-closure-library/**tester.js',
>>>             '!node_modules/google-closure-library/**promise/testsuiteada
>>> pter.js',
>>>             '!node_modules/google-closure-library/**osapi/osapi.js',
>>>             '!node_modules/google-closure-library/**svgpan/svgpan.js',
>>>             '!node_modules/google-closure-library/**alltests.js',
>>>             '!node_modules/google-closure-library/**node_modules**.js',
>>>             '!node_modules/google-closure-library/**protractor_spec.js',
>>>
>>>             '!node_modules/google-closure-library/**protractor.conf.js',
>>>
>>>             '!node_modules/google-closure-library/**browser_capabilities
>>> .js',
>>>             '!node_modules/google-closure-library/doc/**.js',
>>>             'node_modules/google-protobuf/**.js',
>>>             'js/missing-google-crap/message.js',
>>>             'js/missing-google-crap/map.js',
>>>             'js/person.js'
>>>           ],
>>>           compilation_level: 'SIMPLE',
>>>           language_in: 'ECMASCRIPT5',
>>>           create_source_map: 'target/full.js.map'
>>>
>>>         }
>>>       }
>>>     }
>>>   });
>>>
>>>
>>>   grunt.registerTask('default', ['closure-compiler']);
>>> }
>>>
>>>
>>> The javascript is generated via Maven, so here is the command we are
>>> using:
>>>
>>>         <plugin>
>>>                <groupId>com.github.os72</groupId>
>>>                <artifactId>protoc-jar-maven-plugin</artifactId>
>>>                <version>3.0.0</version>
>>>                <executions>
>>>                    <execution>
>>>                        <phase>generate-sources</phase>
>>>                        <goals>
>>>                            <goal>run</goal>
>>>                        </goals>
>>>                        <configuration>
>>>                            <protocVersion>3.0.0</protocVersion>
>>>                            <inputDirectories>
>>>                                <include>src/main/resources/proto</include>
>>>                            </inputDirectories>
>>>                            <outputTargets>
>>>                                <outputTarget>
>>>                                    <type>java</type>
>>>                                    <addSources>none</addSources>
>>>                                    
>>> <outputDirectory>src/main/gen</outputDirectory>
>>>                                </outputTarget>
>>>                                <outputTarget>
>>>                                                             
>>> <type>descriptor</type>
>>>                                     <addSources>none</addSources>
>>>                                     
>>> <outputDirectory>src/main/resources/protoDesc/</outputDirectory>
>>>                                </outputTarget>
>>>                                <outputTarget>
>>>                                             <type>js</type>
>>>                                             <addSources>none</addSources>
>>>                                             
>>> <outputDirectory>src/main/resources/js/</outputDirectory>
>>>                                </outputTarget>
>>>                            </outputTargets>
>>>                        </configuration>
>>>                    </execution>
>>>                </executions>
>>>             </plugin>
>>>
>>>
>>>
>>>
>>> On Wednesday, February 15, 2017 at 9:40:03 AM UTC-9, Adam Cozzette wrote:
>>>>
>>>> If you could share your gruntfile that would be great. I would be
>>>> interested to know in particular the protoc command used to generate the
>>>> Javascript. Also it would be good to verify that the generated code for
>>>> that proto did not somehow get pulled into the protobuf build and end up
>>>> being part of the actual protobuf library.
>>>>
>>>> On Wed, Feb 15, 2017 at 9:10 AM, <[email protected]> wrote:
>>>>
>>>>> I've got some javascript generated from protoc and I'm trying to
>>>>> compile all those files together with closure-compiler so I can use them 
>>>>> in
>>>>> a client app.
>>>>>
>>>>> I'm using Grunt and closure compiler and can provide my gruntfile and
>>>>> generated javascript if it would help.
>>>>>
>>>>> My problem is that the closure compiler gives me a namespace error for
>>>>> each type defined in the protobuf.
>>>>>
>>>>> ERROR - namespace "proto.gov.noaa.alaskafisherie
>>>>> s.demoperson.protos.Person" cannot be provided twice
>>>>> goog.provide('proto.gov.noaa.alaskafisheries.demoperson.protos.Person'
>>>>> );
>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>> ^^^^^^^^^^^^^
>>>>>
>>>>> And so on for each type defined in the .proto.
>>>>>
>>>>> So far as I can tell these are only provided once in the generated
>>>>> file, and I've pared down my compilation attempt to that single file + the
>>>>> closure library and protobuf library files.
>>>>>
>>>>> I've googled the heck out of it and I'm stumped.  I've gotten
>>>>> everything working with https://github.com/dcodeIO/ProtoBuf.js/ but
>>>>> I'd like to be able to use google's generated code rather than bring in
>>>>> another library just for the javascript client.
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Protocol Buffers" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To post to th
>>>>
>>>>
>
>
> --
> Gunnar Gissel
>
> Programmer
> National Marine Fisheries
> 907-586-7602 <(907)%20586-7602>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/protobuf.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to