Comments (5)
I think I may have confused the environment of the error. The inconsistency remains, but where it is wrong I got flipped. It seems to be wrong when running the development server locally.
Going with the examples above 'AQID' is produced locally, 'MSwyLDM=' is produced on the server. I don't think it is an issue solely with my development environment, but if others are not able to replicate feel free to close this.
Does the polyfill run locally? I am a bit confused as to why this would happen otherwise.
from edge-runtime.
@chetjan btoa
expects a string as input; can you confirm to me it works fine if you do this instead?
btoa(new Uint8Array([1, 2, 3]).toString())
from edge-runtime.
@Kikobeats Yes, that works fine, but the main issue I'm trying to bring attention to is that the polyfill doesn't match the function it is polyfilling. This can cause unexpected behavior when deploying.
In terms of a test spec, what I would expect to pass would be:
import { btoa as btoaPolyfill } from '@edge-runtime/ponyfill'
test('btoa', async () => {
const value = new Uint8Array([1, 2, 3])
expect(btoaPolyfill(value)).toBe(btoa(value))
})
Which I suspect would not pass currently.
It may not be worth fixing, the core-js polyfill looks rather complicated. Alternatively, maybe just throw an error if the input is not a string (then it is clear to the developer that the function expects a string).
from edge-runtime.
@chetjan oh, I can see now your point 👍
How does this look to you? #646
from edge-runtime.
Looks good! Thanks.
from edge-runtime.
Related Issues (20)
- `@edge-runtime/types` should declare global types for `fetch`, `File` etc HOT 3
- Allow customisation of `ResponseCookie` encoding HOT 2
- Expose cookie serialization functions. HOT 1
- Include a key in process.versions for detecting edge runtime HOT 2
- Support `has` in ResponseCookies
- Set-Cookie headers are merged when using `fetch` HOT 6
- Primitives: event-target-shim causes issues w/ edge-runtime running on top of node HOT 3
- drop node16 support
- Proxying primitive instances return anonymous `toString()` return functions
- Why cannot my `fetch` API work in edge function? HOT 4
- 🙏`fetch` api doesn't work in edge function HOT 4
- Which functions and APIs advance the value returned by `Date.now`? HOT 3
- drop node18 support
- Response.redirect() fails to parse some URLs in production which parse successfully in local runtime HOT 2
- `@edge-runtime/node-utils` can't start example server from docs using `primitives` (node v18.18.2) Headers2 is not a constructor HOT 1
- Secure Cookies can't be deleted from Responses
- CompressionStream / DecompressionStream support?
- failing on buffer
- Does Edge Runtime use alternative vm instead of node:vm? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from edge-runtime.