---
title: "A regular expression refresher"
publication: "JavaScript Weekly"
issue: 701
published_at: "2024-08-22"
canonical_url: "https://javascriptweekly.com/issues/701"
---

Plus a guide to TypeScript mistakes, a tool to find memory leaks, and Bun gets node:cluster support. |        

#​701 — August 22, 2024 

[Read on the Web](https://javascriptweekly.com/issues/701)  

Together with [![WorkOS\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_514,h_98/e_make_transparent/co_white,e_outline:9/tdfxwgk852ui9leli4wm.png)](https://workos.com/?utm_source=cpjava&utm_medium=newsletter&utm_campaign=q32024)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/fdfwe9x8bfskf7mnugwj.jpg)](https://www.smashingmagazine.com/2024/08/history-future-regular-expressions-javascript/)  

[Regexes Got Good: The History (and Future) of Regular Expressions in JavaScript](https://www.smashingmagazine.com/2024/08/history-future-regular-expressions-javascript/) — Regular expression support was always a little underwhelming in JS, but things have improved. Steven takes us on a tour to refresh our knowledge, as well as show off his [‘regex’ library](https://github.com/slevithan/regex) that boosts JS regexes to a true A++ rating. Steven was co-author of O’Reilly’s _Regular Expressions Cookbook_ and _High Performance JavaScript_ so knows his stuff. 

Steven Levithan   [![\](https://copm.s3.amazonaws.com/8e36c806.png)](https://workos.com/?utm_source=cpjava&utm_medium=newsletter&utm_campaign=q32024) 

[WorkOS: The Modern Identity Platform for B2B SaaS](https://workos.com/?utm_source=cpjava&utm_medium=newsletter&utm_campaign=q32024) — WorkOS is a modern identity platform for B2B SaaS, offering flexible and easy-to-use APIs to integrate SSO, SCIM, and RBAC in minutes instead of months. It's trusted by hundreds of high-growth startups such as Perplexity, Vercel, Drata, and Webflow. 

WorkOS sponsor   

[Node v22.7.0 (Current) Released](https://nodejs.org/en/blog/release/v22.7.0) — Node 22.6 let you _strip_ types from source code, but now with `--experimental-transform-types` you can transform TypeScript-only syntax into JavaScript before running it too. Module syntax detection is now also enabled by default. 

Rafael Gonzaga   

[Bun v1.1.25: Now Running at 1.29 Million Requests per Second](https://bun.sh/blog/bun-v1.1.25) — I’m having a little fun with the title, but the latest version of the JavaScriptCore-based JS runtime has added `node:cluster` support and uses this to demo a high level of HTTP throughput on a ‘Hello World’ example. Support for V8’s C++ API has also landed – notable because Bun _isn’t_ V8-based. 

Ashcon Partovi   

**IN BRIEF:** 

- We've mentioned ECMASCript 2024 a bit recently, but Pawel Grzybek has a neat and tidy [overview of what's new in the ES2024 spec.](https://pawelgrzybek.com/whats-new-in-ecmascript-2024/)
- 🐝 Could [Wasp](https://wasp-lang.dev/) be ['the JavaScript answer to Django' for full-stack webdev?](https://wasp-lang.dev/blog/2024/08/20/django-vs-wasp) The Wasp team certainly thinks so.
- 🎙️ Ryan Dahl, creator of both Node.js and Deno, [went on the Stack Overflow podcast to talk about Deno's current limitations](https://stackoverflow.blog/2024/08/20/ryan-dahl-deno-20-scale-improve-npm-nodejs/) and what's coming in Deno 2.0.   

**RELEASES:** 

- [PlayCanvas Engine 2.0](https://blog.playcanvas.com/playcanvas-engine-hits-2-0-0/) – A powerful JS-based Web graphics platform.
- [Node v20.17.0 (LTS)](https://nodejs.org/en/blog/release/v20.17.0) – The LTS release of Node adds support for `require`-ing synchronous ESM graphs.
- [Astro 4.14](https://astro.build/blog/astro-4140/) – The popular agnostic content site framework now includes an experimental API for managing site content.
- [pnpm 9.8](https://github.com/pnpm/pnpm/releases/tag/v9.8.0), [Vuetify 3.7](https://vuetifyjs.com/en/), [Neo.mjs 7.0](https://neomjs.com/dist/production/apps/portal/#/home)   

[Join Us for ViteConf on October 3rd](https://viteconf.org/?utm_source=js_weekly&utm_medium=secondary) — Learn how the best teams are building the next generation of the web with Vite! 

StackBlitz sponsor  

📒 Articles & Tutorials 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/p7rap6wlcnlu0vzl8c37.jpg)](https://leanpub.com/50-ts)  

[50 TypeScript F--k Ups Mistakes](https://leanpub.com/50-ts) — An admittedly colorfully-titled book digging into lots of subtle mistakes you might run into with TypeScript. It’s available on Leanpub in PDF, iPad, and Kindle forms, or you can [read it all directly on its GitHub repo.](https://github.com/azat-co/50-ts/?tab=readme-ov-file#50-typescript-fck-ups-book) At least worth a skim in case you're running into any of its points.. 

Azat Mardan   

[The Official Redux Essentials Tutorial, _Redux_](https://redux.js.org/tutorials/essentials/part-1-overview-concepts) — The long standing guide to how to use the popular Redux state container _the right way_ with best practices has undergone a big reworking with TypeScript used throughout, new concepts added, and more coverage of RTK/React Toolkit features. 

Redux Team   

[React is (Becoming) a Full-Stack Framework](https://www.robinwieruch.de/react-full-stack-framework/) — Is React merely a frontend library? How does the backend fit in? The author shares his thoughts on what led him to start considering React as more of a full-stack solution. 

Robin Wieruch   

📄 [Using JavaScript Generators to Visualize Algorithms](https://www.covicale.com/blog/using-javascript-generators-to-visualize-algorithms) Alexander G. Covic 

📄 [Optimizing SPA Load Times with Async Chunks Preloading](https://mmazzarolo.com/blog/2024-08-13-async-chunk-preloading-on-load/) Matteo Mazzarolo 

📄 [Using `isolatedModules` in Angular 18.2](https://blog.angular.dev/using-isolatedmodules-in-angular-18-2-68a7d3a6c03d) Thompson and Lyding (Angular Team) 

📄 [How to Generate a PDF in a JavaScript App](https://spacejelly.dev/posts/generate-a-pdf-from-html-in-javascript) Colby Fayock  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/kumv7ba7kupvi7ykat4l.jpg)](https://milkdown.dev/)  

[Milkdown: Plugin-Driven WYSIWYG Markdown Editor Framework](https://milkdown.dev/) — A lightweight WYSIWYG Markdown editor based around a plugin system that enables a significant level of customization. It’s neat to see [the docs](https://milkdown.dev/docs/guide/getting-started) are rendered by the editor itself. [GitHub repo.](https://github.com/Milkdown/milkdown) 

Mirone   

[Fuite 5.0: A Tool for Finding Memory Leaks in Web Apps](https://github.com/nolanlawson/fuite) — A CLI tool that you can point at a URL to analyze for memory leaks. [Here’s how it works.](https://nolanlawson.com/2021/12/17/introducing-fuite-a-tool-for-finding-memory-leaks-in-web-apps/) There’s also [a video tutorial](https://www.youtube.com/watch?v=H0BHL2lo89M). 

Nolan Lawson   

[✂️ Cut Your QA Cycles Down to Minutes with Automated Testing](https://www.qawolf.com/?utm_campaign=KissBugsGoodbye08112024&utm_source=jsweekly&utm_medium=newsletter) — Are slow test cycles limiting your dev teams' release velocity? QA Wolf provides high-volume, high-speed test coverage for web and mobile apps — reducing your test cycles to minutes. [Learn more](https://www.qawolf.com/?utm_campaign=KissBugsGoodbye08112024&utm_source=jsweekly&utm_medium=newsletter). 

QA Wolf sponsor   

[LogTape: Simple Logging Library with Zero Dependencies](https://github.com/dahlia/logtape) — I’m digging this new style of library that promises support across all the main runtimes (Node, Deno, Bun) as well as edge functions _and_ the browser devtools. 

Hong Minhee   

📊 [Chart.js 4.4: Canvas-Based Charts for the Web](https://www.chartjs.org/) — One of those libraries that feels like it’s been around forever but still looks fresh and gets good updates. Bar, line, area, bubble, pie, donut, scatter, and radar charts are all a piece of cake to render. [Samples](https://www.chartjs.org/docs/latest/samples/information.html) and [GitHub repo.](https://github.com/chartjs/Chart.js) 

Chart.js Contributors   

[Legend State: A Tiny, Fast and Modern React State System](https://www.legendapp.com/open-source/state/v3/) — A year ago, Jack Herrington wondered if Legend State could be [▶️ ‘the ultimate state manager’](https://www.youtube.com/watch?v=E4TH77SMOG8) and things have progressed a lot since, with it now boasting being [the fastest React state library](https://github.com/LegendApp/legend-state?tab=readme-ov-file#2-%EF%B8%8F-the-fastest-react-state-library) in town. 

Jay Meistrich   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/cb0mihimzajabydodrb4.jpg)](https://github.com/jcubic/tagger)  

[Tagger: Zero Dependency, Vanilla JavaScript Tagging Library](https://github.com/jcubic/tagger) — You can play with [a live demo here](https://codepen.io/jcubic/pen/YbYpqO). 

Jakub T. Jankiewicz   

[tinykeys 3.0: A Keybindings Library in ~650 Bytes](https://github.com/jamiebuilds/tinykeys) — Keeps things as simple and sweet as possible. 

Jamie Kyle   

[heic-to: Convert HEIC/HEIF Images to JPEG or PNG in the Browser](https://github.com/hoppergee/heic-to) 

Hopper Gee   

- [Cheerio 1.0](https://cheerio.js.org/blog/cheerio-1.0) – HTML/XML manipulation library for Node.
- 🎨 [Chroma.js 3.0](https://github.com/gka/chroma.js/releases/tag/v3.0.0) – JavaScript color manipulation library.
- [eta (η) 3.5](https://github.com/eta-dev/eta) – Embedded JS template engine for Node, Deno, and browsers.
- [Embla Carousel 8.2](https://www.embla-carousel.com/) – Carousel library with fluid motion and good swipe precision.
- [d3-graphviz 5.6](https://github.com/magjac/d3-graphviz) – Graphviz DOT rendering and animated transitions.
- [Alpine AJAX 0.9](https://github.com/imacrayon/alpine-ajax) – Alpine.js plugin for building server-powered frontends.
- [Happy DOM 15.0](https://github.com/capricorn86/happy-dom) – JS implementation of a web browser _sans_UI.
- [Elliptic 6.5.7](https://github.com/indutny/elliptic) – Elliptic curve cryptography in plain JS.
- [Poku 2.5](https://github.com/wellwelwel/poku) – Cross-platform JavaScript test runner.    

**💚 Use Node?** Check out the [latest issue of _Node Weekly_](https://nodeweekly.com/latest), our sibling email about all things relating to Node.js — from tutorials and screencasts to news and releases. We do include some Node related items here in _JavaScript Weekly_, but we save most of it for there.

**[→ Check out Node Weekly](https://nodeweekly.com/)**         

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/cooperx86) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
