[ 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)