---
title: "Node 23.8 introduces the URL Pattern API"
publication: "Node Weekly"
issue: 567
published_at: "2025-02-25"
canonical_url: "https://nodeweekly.com/issues/567"
---

Plus migrating from JS to TypeScript and a dive into weak references. |        

#​567 — February 25, 2025 

[Read on the Web](https://nodeweekly.com/issues/567)   

👋 Just in case you missed the message, we took last week off but we're back now until Easter, so you didn't miss anything. :-)
__
_Peter Cooper, your editor._ 

Together with [![Frontend Masters logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_300,h_70/e_make_transparent/co_white,e_outline:5/nk0tfdvalivacz8rw7rt.png)](https://frontendmasters.com/courses/functional-first-steps-v2/?utm_source=email&utm_medium=nodeweekly&utm_content=ffsv2)  

![Node.js Weekly](https://res.cloudinary.com/cpress/image/upload/v1653576619/lgfqinzbdqttwmhvljxb.png) 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/b4y8qgcabdwa7zx9jfxd.jpg)](https://jlongster.com/weak-refs)  

[Subverting Control with Weak References](https://jlongster.com/weak-refs) — Node supports `WeakMap` and [`WeakRef`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakRef) for working with weak references and James is a big fan of the extra abstractions they unlock. A weak reference differs from a normal reference in that it _doesn’t_ prevent a referenced object from being garbage collected – this might sound like it has limited value, but is quite useful in certain scenarios. 

James Long   

[Node v23.8.0 (Current) Released](https://nodejs.org/en/blog/release/v23.8.0) — You can now tell Node to use the system’s trusted CA certificate store with `--use-system-ca` and there’s an implementation of the [URL Pattern API](https://developer.mozilla.org/en-US/docs/Web/API/URL_Pattern_API) (`URLPattern` will become a global in Node 24). Other minor enhancements include an update to Node’s timezone data and initial support for the zstd compression algorithm (via `node:zlib`). 

Michaël Zasso   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/a6c34f22.png)](https://frontendmasters.com/courses/functional-first-steps-v2/?utm_source=email&utm_medium=nodeweekly&utm_content=ffsv2) 

[Functional JavaScript First Steps, v2](https://frontendmasters.com/courses/functional-first-steps-v2/?utm_source=email&utm_medium=nodeweekly&utm_content=ffsv2) — A friendly, practical introduction to functional programming fundamentals in JavaScript. Learn the power of the pure function while exploring functional programming paradigms. 

Frontend Masters sponsor   

[Migrating 160K Lines of Production JS to TypeScript Without Downtime](https://benhowdle.im/migrating-js-to-ts-zero-downtime.html) — A quick look at the motivation, strategy developed, and a few of the tools that made it a less painful process. But was it worth it? _“Absolutely,”_ Ben says. 

Ben Howdle   

**IN BRIEF:** 

- Cloud platforms like Cloudflare Workers, Vercel Edge and Deno Deploy boast some partial level of Node.js compatibility, but how much? [Pooya Parsa has created a test suite to find out](https://github.com/pi0/platform-node-compat) which results in [reports like this.](https://platform-node-compat.pi0.workers.dev/)
- [Deno 2.2 has arrived](https://socket.dev/blog/deno-2-2-improves-dependency-management-and-expands-nodejs-compatibility), boasting yet more Node.js ecosystem compatibility.
- [Node v18.20.7 (LTS)](https://nodejs.org/en/blog/release/v18.20.7) was released. Note that v18's maintenance phase ends in just a couple of months.   

[A Demo of Running TypeScript Directly in Node.js](https://2ality.com/2025/02/nodejs-type-stripping-demo.html) — _“I have published the repository [`nodejs-type-stripping`](https://github.com/rauschma/nodejs-type-stripping) which demonstrates how to implement a package with a bin script that is written directly in TypeScript (no transpilation).”_ 

Dr. Axel Rauschmayer   

[Why TypeScript 5.8's `--erasableSyntaxOnly` Matters](https://www.totaltypescript.com/erasable-syntax-only) — _“It disables a bunch of features that I don’t think should ever have been part of TypeScript.”_ 

Matt Pocock   

[Optimize Your BullMQ Workers](https://judoscale.com/node/bullmq-autoscaling?utm_source=node-weekly&utm_campaign=bullmq) — Queues backed up? Workers over-provisioned? Automatic scaling based on queues is the answer! 

Judoscale sponsor   

📄 [Building a Simple Interactive CLI App with Node.js](https://www.robinwieruch.de/node-js-cli/) – And TypeScript.. Robin Wieruch 

📄 [Cloudflare, Unikernels and Bare Metal: The Life of a Prisma Postgres Query](https://www.prisma.io/blog/cloudflare-unikernels-and-bare-metal-life-of-a-prisma-postgres-query) Nikolas Burk (Prisma) 

📄 [Node.js Tracing for Better Visibility and Performance with N|Solid](https://nodesource.com/blog/tracing-nodejs) Lizz Parody (NodeSource) 

📄 [How to Refactor Code with GitHub Copilot](https://github.blog/ai-and-ml/github-copilot/how-to-refactor-code-with-github-copilot/) Anthony Grutta (GitHub)    

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/dy1p5dqbuf4vdyzjnqes.jpg)](https://github.com/L-Blondy/up-fetch)  

[upfetch: An Advanced `fetch` Client Builder](https://github.com/L-Blondy/up-fetch) — A TypeScript library to enhance `fetch` with schema validation, automatic response parsing, and type-safety, while maintaining the familiar `fetch` API. 

Laurent Blondy   

[Mastra: A TypeScript AI Framework from the Gatsby Team](https://mastra.ai/) — From some of the folks behind the [Gatsby](https://www.gatsbyjs.com/) React framework comes a new way to build LLM-powered agents that perform various tasks, use knowledge bases, and hold memory. Think a meta-framework like Next.js but for AI agents. [GitHub repo.](https://github.com/mastra-ai/mastra) 

Mastra   

[Opus 0.10: Native Opus Bindings for Node](https://github.com/discordjs/opus) — Bindings for `libopus`, a library for working with the Opus lossy audio codec. 

Discord.js Team   

♟️ [Chess.js 1.1: A Library to Manage a Chess Game](https://github.com/jhlywa/chess.js) — Move generation/validation, piece placement, check/checkmate/stalemate detection – _“basically everything but the AI”_! 

Jeff Hlywa       

📰 Classifieds   

🔒 [Protect your SaaS app with advanced device fingerprinting from WorkOS Radar](https://workos.com/radar?utm_source=cpnode&utm_medium=newsletter&utm_campaign=q12025). Stop fake signups, free tier abuse, bot attacks and brute force attempts today. 

--- 

[Telling the Bit story:](https://bit.dev/blog/telling-the-bit-story-celebrating-10-years-of-composability/?utm_source=NodeWeekly&utm_id=22&utm_medium=newsletter) Celebrating 10 Years of Composability. Ran Mizrahi reveals how Bit shifted from development stagnation to exponential progress using Composability. 

--- 

☁️ Questions about serverless & its hidden costs & complexities? Is it an illusion? [Join Matteo Collina for a webinar exploring this & more](https://riverside.fm/webinar/registration/eyJzbHVnIjoicGxhdGZvcm1hdGljcy1zdHVkaW8iLCJldmVudElkIjoiNjdiODdjMWY0MjE0MDVkMGNkN2MzYjBjIiwicHJvamVjdElkIjoiNjdiODdjMWY0MjE0MDUwYmY4N2MzYjBhIn0=).     

- [node-cron 4.1](https://github.com/kelektiv/node-cron) – Run functions/commands on cron-defined schedules.
- [Mercurius 16.1](https://github.com/mercurius-js/mercurius) – Implement GraphQL servers on top of Fastify.
- [DOCX 9.2](https://github.com/dolanmiu/docx) – Generate .docx / Word files from JavaScript.
- [Middy 6.1](https://github.com/middyjs/middy) – Node.js AWS Lambda middleware engine.
- [Faker 9.5](https://github.com/faker-js/faker) – Generate fabricated data to your heart's content.
- [Bunchee 6.4](https://github.com/huozhi/bunchee) – Zero config bundler for npm packages.
- [Secretlint 9.2](https://github.com/secretlint/secretlint) – Tool to prevent committing credentials/secrets.
- [Colyseus 0.16](https://github.com/colyseus/colyseus) – WebSocket-based multiplayer framework.
- [file-type 20.2](https://github.com/sindresorhus/file-type) – Detect the file type of a file, stream, or data.
- [Light My Request 6.6](https://github.com/fastify/light-my-request) – Fake HTTP injection library
- 🎹 [JZZ 1.9](https://jazz-soft.net/doc/JZZ/) – MIDI library for Node and browsers.  

📢 Elsewhere in JavaScript  

A quick roundup of some of other interesting stories in the broader JavaScript landscape, in case you've missed them: 

- Last week, TC39 (the committee responsible for progressing JavaScript's underlying spec) [advanced several proposals](https://socket.dev/blog/tc39-advances-3-proposals-to-stage-4-regexp-escaping-float16array-and-redeclarable-global-eval) bringing new features to JavaScript, including `Float16Array`, `import defer`, `Math.clamp` and `Error.captureStackTrace`.
- [ESLint now officially supports CSS linting](https://eslint.org/blog/2025/02/eslint-css-support/) (in addition to JSON and Markdown, as added last year).
- The React team has now [officially deprecated _Create React App._](https://react.dev/blog/2025/02/14/sunsetting-create-react-app)    

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. _Thanks!_ 

--- 

**Sponsorship:** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Cancel your subscription](https://nodeweekly.com/leave/*|UID|*) or [change your address](https://nodeweekly.com/edit_subscription/*|UID|*).
