Time for my annual post about node.js versions. v20 is end-of-life in two weeks. Some in the node community are already moving to require v22 aggressively. I'll start on 2026-05-01. Time to upgrade.
Note to future self: test bigendian with this now: `DOCKER_DEFAULT_PLATFORM="linux/s390x" docker run -it --rm s390x/node bash`. If it doesn't work, do this first: `docker run --rm --privileged multiarch/qemu-user-static --reset -p yes` and restart docker.
Node.js v18 goes End-of-Life on 2025-04-30. I'm going to start doing semver-major changes on all of my packages to remove support for v18 on 2025-05-01.
First full release today of github.com/cto-af/http-..., which parses the most popular 70 HTTP headers with their full ABNF definitions. 0 runtime dependencies, should work in any JS runtime, 100% test coverage.
GitHub - cto-af/http-headers: Parse HTTP headers from RFC 9110 using the full ABNF
Parse HTTP headers from RFC 9110 using the full ABNF - cto-af/http-headers
github.com
What music do you all listen to in your headphones in order to give your partner privacy while they're on the phone? I'm currently using the "Drum & Bass" channel on Pandora, which is working adequately.
I never did get a response from @neilhimself.neilgaiman.com, but I still hope I may be forgiven for pronouncing the angel's name "Azure Raphael", which I have done since I first bought the book, the spring day I bought it in 1990, and it seems I am stuck with it (This is my cherished original copy)
This semver CVE (https://github.com/advisories/GHSA-c2qf-rxjj-qqgw) isn't *that* bad, security-impact-wise, but it's causing many relatively-unmaintained packages to need to look at their dependencies. If you have ever maintained a package in the NPM ecosystem, PLEASE take a look.
20 years too late, here's an XML parser, DOM, and XPath implementation in plain JS+WASM: https://github.com/hildjj/expat-wasm-dom/It does all of XML1.0r4 that I could coax out of expat, and just enough XPath to be useful.```jsconst doc = xml`<foo><bar>Hi!</bar></foo>`doc.first('/foo/bar/text()')```
github.com