[ 
https://issues.apache.org/jira/browse/AVRO-3322?focusedWorklogId=714280&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-714280
 ]

ASF GitHub Bot logged work on AVRO-3322:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 25/Jan/22 08:30
            Start Date: 25/Jan/22 08:30
    Worklog Time Spent: 10m 
      Work Description: ruleeeer commented on pull request #1473:
URL: https://github.com/apache/avro/pull/1473#issuecomment-1020927484


   @martin-g Can I use an E2E testing framework to complete this part of the 
test?, just like 
https://github.com/originjs/vite-plugin-federation/tree/main/packages/examples  
 
   because I need 
   1. Browser running environment
   2. bundle tools(such as rollup or webpack)
   However, this may lead to a larger test project


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@avro.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 714280)
    Time Spent: 40m  (was: 0.5h)

> Buffer is not defined in browser environment
> --------------------------------------------
>
>                 Key: AVRO-3322
>                 URL: https://issues.apache.org/jira/browse/AVRO-3322
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: js
>         Environment: Firefox 96 & Brave 1.34(based on chromium)
>            Reporter: ruleeeer
>            Priority: Blocker
>              Labels: pull-request-available
>         Attachments: image-2022-01-25-15-57-43-468.png
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> When I use avro in my browser, I find that I get the `Buffer is undefined 
> error`
> !image-2022-01-25-15-57-43-468.png!
> The code I use is simple, it comes from the github repository readme.md
> {code:javascript}
> var avro = require('avro-js');
> var type = avro.parse({
>   name: 'Pet',
>   type: 'record',
>   fields: [
>     {name: 'kind', type: {name: 'Kind', type: 'enum', symbols: ['CAT', 
> 'DOG']}},
>     {name: 'name', type: 'string'}
>   ]
> });
> var pet = {kind: 'CAT', name: 'Albert'};
> var buf = type.toBuffer(pet); // Serialized object.
> var obj = type.fromBuffer(buf); // {kind: 'CAT', name: 'Albert'}
> {code}
> Later I traced the source code and found that Buffer is used directly in 
> `/etc/browser/avro.js` and `/lib/schema.js`, which is not a problem in the 
> node environment because the Buffer object is mounted globally, but it is a 
> problem in the browser environment because using buffer polyfill will not 
> mount the Buffer object globally, You need to  declare `var Buffer = 
> require('buffer').Buffer` manually, so that it can be used in the browser 
> environment without affecting the node environment, which also gets its 
> Buffer from require('buffer').



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to