Profile avatar
joyeecheung.bsky.social
She/her. I contribute to Node.js and V8. I post about museums, food, plants and other stuff too. https://github.com/joyeecheung
614 posts 2,249 followers 302 following
Regular Contributor
Active Commenter
comment in response to post
`module-sync` was added when we weren't sure whether require(esm) would be backported to v20. But it was backported to v20 and now v20 is the oldest active LTS, if you don't support EOL LTS, no need to worry about it.
comment in response to post
`module` is a bundler thing, I am not sure if without it bundlers would be able to bundle require(esm). You only need to worry about it when the code may be bundled.
comment in response to post
If the same release needs to support Node.js < 20 (unfortunately): `module` pointing to ESM for bundlers, `module-sync` pointing to ESM for Node.js >= 20, the rest depends on whether you do dual/faux ESM If the release only supports Node.js >= 20: just `default` pointing to ESM, and bump "engines"
comment in response to post
I have some fond memories of working with people going to the same event! Coffee shops are much nicer for hanging out with others than bars since the music tend to be softer 😆 (I also have my bias because I don’t drink alcohol but I drink coffee)
comment in response to post
There is also the pressure from “now that I am in a public space and I don’t have my earphones with me I should not go watch cat videos and instead I should do something that make me look serious”
comment in response to post
For me it depends on whether I can get into the zone - when I am in the zone all I care is the screen in front of me and I barely notice anyone or anything around me, I only realize it's time to go when it's closing. When I can't get into the zone I can be easily distracted.
comment in response to post
I think it's probably a bit ambiguous to say whether it "supports CJS/ESM" - a more accurate description is whether it's fully executed as CJS/ESM. Since both import cjs and require(esm) work on most modules, mixed execution formats can still said to be "supported".
comment in response to post
If you don't need brk you can get it by adding --import "data:text/javascript,setTimeout(() => {}, 2**31-1)" to the command line, or just preload a file that does it, though it doesn't work with brk logic
comment in response to post
In the case of Node.js it has a bunch of custom rules that don’t apply to any other projects (like instead of using Buffer, get it from internal/buffer first), so unless the plugin interface is shimmed someone needs to port these custom rules over
comment in response to post
I suspect that might not run in the first place without someone porting the eslint plugins that Node.js have developed for itself to whatever another linter provides
comment in response to post
Nice, it's ~3.8x faster on Node.js main branch! (I edited the linting command in Makefile after pulling in the PR)
comment in response to post
I used to have the same combo! (though I got rid of my Razer when I moved)
comment in response to post
If there is a test release it should be easy to try it out by updating github.com/nodejs/node/...
comment in response to post
It may be interesting to try it on Node.js! The codebase is pretty big (including tests and all), I am not sure how to pull in a PR in there though, the command to use is `make lint-js` which calls github.com/nodejs/node/...
comment in response to post
Now it's time to spread the myth about why Temporal was needed: TC39 delegate got stranded because of a bug in Date...😈
comment in response to post
I just use PowerPoint
.while it’s not the coolest solution, it is what I am familiar with since school age and gets things done efficiently. It’s pretty straight forward to record and edit audio and annotations for individual slides.
comment in response to post
I think it depends on the airlines, and maybe what you look like. In Spain it's very common for airlines to ask for TIE. I once got asked to show my passport in addition to my TIE even though other passengers only got asked to show their TIE (because I don't look like I am from Spain I guess).
comment in response to post
I am having a FOMO attack đŸ«š
comment in response to post
You can search for Module.prototype._compile or Module.wrap on GitHub and get an impression about what would happen if Node.js changes them (and these are all undocumented internals)
comment in response to post
Another case of Node.js being very much like the Web - I heard from ladybird contributors that many widely used Web features are actually pretty inaccurately specified, one would only ever know when they try to write a new browser from scratch and break real world websites by implementing the spec
comment in response to post
The funny part is, despite being under specified, even changing the signature of an internal prototype method of the CJS loader is enough to break the ecosystem that hours after the release the issue tracker could be swamped by angry users, so that the core contracts have to be very stable.
comment in response to post
Walking too much + a lot of activities during the weekends. (I thought interactive arcade games are going to be chill and then they end up being then most intense ones 😅)
comment in response to post
Not sure I am seeing any concern about breaking changes in that thread? It seems to be more about the way the PR changes the files?
comment in response to post
(It was added during a time when we weren’t sure about whether it can be backported to 20 or not so it could’ve been one more year until the last LTS without require(esm) goes EOL. But we managed to backport it to 20 so now all active LTS support require(esm))
comment in response to post
If you only support Node.js 20 and above then there is no need to use more export conditions for this. module-sync is for those who still need to support EOL Node.js to go ESM first on 20 and above, and CJS on older versions (hopefully temporarily)
comment in response to post
The recording of the live stream is available at www.youtube.com/live/De4n7vj... there should be clips of individual talks available later
comment in response to post
@tomayac.com giving the only AI talk of the day: built-in AI APIs on the Web!
comment in response to post
Mike Pennisi sharing about AT Driver
comment in response to post
Adriån Pérez giving an introduction to WPE WebKit on Android
comment in response to post
Christian Ulbrich showcasing how to version web components
comment in response to post
Jonas Haukenes, Mikhail Barash and @sffc.bsky.social giving case studies of contributing to JS engines
and sharing a third-party library (in Rust!) to simplify implementation of Temporal
comment in response to post
Slides of my talk @webengineshackfest.org - Bridging CommonJS and ESM in Node.js, or implementor's tales of require(esm) github.com/joyeecheung/...
comment in response to post
Slides of my talk @webengineshackfest.org - Bridging CommonJS and ESM in Node.js, or implementor's tales of require(esm) github.com/joyeecheung/...
comment in response to post
@kettmeir.dev introducing the governance of JSR..
comment in response to post
@andreubotella.com and @lcas.dev talking about recent efforts in WinterTC
comment in response to post
You need to remove “sunny”