---
title: "require(esm) makes it to LTS"
publication: "Node Weekly"
issue: 559
published_at: "2024-12-10"
canonical_url: "https://nodeweekly.com/issues/559"
---

Plus Undici makes HTTP/2 stable, semantic search, and why Douglas Crockford isn't your dad. |        

#​559 — December 10, 2024 

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

🎄 The Node world is experiencing a post-Thanksgiving _interfestal_ lull, so this issue includes a few items we overlooked earlier this year. Next week brings our usual annual roundup, though, so keep your eyes peeled for that before the festive break :-)
__
_Peter Cooper, your editor_ 

Together with [![Memetria\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_600,h_145/e_make_transparent/co_white,e_outline:7/vvpdctzacmq3xehpvwps.png)](https://dashboard.memetria.com/nodeweekly/)  

![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/l6refnwd5jr6jl4qn8bs.jpg)](https://socket.dev/blog/node-js-delivers-first-lts-with-require-esm-enabled)  

[Node.js Delivers First LTS with `require(esm)` Enabled](https://socket.dev/blog/node-js-delivers-first-lts-with-require-esm-enabled) — It’s a modest milestone, but [Node v22.12.0 (LTS)](https://nodejs.org/en/blog/release/v22.12.0) has been released and marks Node’s first LTS release with non-flagged support for loading native ES modules with `require()`. It’s _still experimental_, though, and [you’re encouraged](https://nodejs.org/en/blog/release/v22.12.0#requireesm-is-now-enabled-by-default) to send in feedback and bug reports. 

Sarah Gooding   

[Node's Corepack: Version Control for Package Managers](https://www.trevorlasn.com/blog/corepack-nodejs) — A quick intro to a commonly misunderstood (and [mildly contentious](https://socket.dev/blog/node-community-debates-enabling-corepack-unbundling-npm)) part of the modern Node distribution: [Corepack.](https://nodejs.org/api/corepack.html) It’s a (still) experimental tool for _managing package managers._ 

Trevor I. Lasn   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/2200a2df.png)](https://dashboard.memetria.com/nodeweekly/) 

[Memetria K/V: High-Performance Key-Value Hosting](https://dashboard.memetria.com/nodeweekly/) — Boost your Node.js apps with Memetria K/V, providing portable, easy-to-use hosting for Redis OSS and Valkey. Scale your applications with ease and achieve high performance. Includes detailed analytics and large key memory tracking. 

Memetria sponsor   

**IN BRIEF:** 

- 🎄 Last week we mentioned the fabulous [Advent of Code](https://adventofcode.com/) competition which is taking place again right now. The Deno team want to sweeten the deal by bribing encouraging you to give Deno a go with [some special stickers on offer for completing certain numbers of days.](https://deno.com/blog/advent-of-code-2024)
- Just in case you forgot, [Douglas Crockford is Not Your Dad](https://douglascrockfordisnotyourdad.technomancy.us/) – at least when it comes to putting comments in JSON..
- ⚛️ [React 19 has been released.](https://react.dev/blog/2024/12/05/react-19) More on this in tomorrow's _[React Status.](https://react.statuscode.com/)_   

[Implementing Filtered Semantic Search Using `pgvector` and JS](https://www.timescale.com/blog/implementing-filtered-semantic-search-using-pgvector-and-javascript-2/) — If you need something more sophisticated than keyword search, a _semantic_ approach based upon the _meanings_ of words/queries compared using vector embeddings offers a big step up. Luckily, there are some Postgres extensions that make building such things quite simple.. 

Timescale Team   

📄 [An Introduction to Database Migrations with Drizzle ORM](https://frontendmasters.com/blog/drizzle-database-migrations/) Adam Rackis 

📄 [Taking Regular Screenshots of My Website](https://alexwlchan.net/2024/scheduled-screenshots/) – A nifty robust approach using Playwright and GitHub Actions. Alex Chan 

📄 [Building Your Own `npm create` Package](https://www.alexchantastic.com/building-an-npm-create-package) – You'll have seen various scaffolding tools using this technique. (A Different) Alex Chan 

📄 [I Like Makefiles](https://switowski.com/blog/i-like-makefiles/) – I also use this approach to help me organize the various shell incarnations I need for each project I’m working on. Sebastian Witowski 

📄 [Requesting Camera and Microphone Permissions in an Electron App](https://www.bigbinary.com/blog/request-camera-micophone-permission-electron) Farhan CK 

📺 [The V8 JavaScript Engine: Let's Read The Code](https://www.youtube.com/watch?v=0L8_QgI07BM) Ants Are Everywhere    

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/tox6yml6jnzrpcepjalu.jpg)](https://github.com/kleisauke/wasm-vips)  

🖼️ [wasm-vips: It's `libvips`, Compiled to WebAssembly](https://github.com/kleisauke/wasm-vips) — [libvips](https://www.libvips.org/) is a popular, highly efficient image processing library written in C. You can use it via [Sharp](https://www.npmjs.com/package/sharp) in Node.js, but this offers a more isomorphic route for use in Node, Deno, and modern browsers by way of WebAssembly. (There's a [nifty online demo here.](https://wasm-vips.kleisauke.nl/playground/)) 

Kleis Auke Wolthuizen   

[Build Fully Functional Apps in Minutes, Not Months](https://bolt.new/?utm_source=node_weekly&utm_medium=secondary) — Create, run, edit, and deploy full-stack web apps with Bolt. 

StackBlitz sponsor   

[Undici v7.1.0: Now with Stable HTTP/2 Support](https://github.com/nodejs/undici/releases/tag/v7.1.0) — Last week we featured [the latest major v7 version](https://blog.platformatic.dev/undici-v7-is-here) of Node’s powerful HTTP/1.1 client. Now, after [a little discussion](https://github.com/nodejs/undici/pull/3814), they’re marking Undici’s HTTP/2 support stable too ([notes on HTTP/2 support in the docs](https://github.com/nodejs/undici/blob/main/docs/docs/api/Client.md?plain=1#L35)). 

Matteo Collina et al.   

[tldts: Extract Domain Names, Subdomains and Suffixes from URLs](https://github.com/remusao/tldts#readme) — A ‘blazing fast’ library for extracting hostnames, domains, public suffixes, and more from URLs, with full Unicode/IDA support, type definitions, and more. 

Parisot and Berson       

📰 Classifieds   

🚨 [Catch flaky tests before they break your build!](https://about.codecov.io/blog/catching-flaky-tests-before-its-too-late/?utm_medium=paid-community&utm_source=nodeweekly&utm_campaign=fy25q4-blogtests&utm_content=newsletter-fy25q4-tests-read) Learn to flag unreliable tests early and keep your CI/CD pipeline running smoothly. 

--- 

📬 [Hookdeck](https://hookdeck.com/?ref=nodeweekly-559): A serverless queue to reliably send, receive, transform, filter, and route events across your event-driven apps.    

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qu8vzmylwj1bdgoxtjyt.jpg)](https://github.com/pelias/placeholder)  

[Pelias 4.0: A Modular, Stand-Alone 'Coarse' Geocoder](https://github.com/pelias/placeholder) — Given an address or place name this will come up with geographic coordinates, and vice versa. In terms of finding a location, it’s not _super_ accurate (hence the ‘coarse’) but it may be acceptable for your use case. [Demo here.](https://placeholder.demo.geocode.earth/demo/#eng) 

Pelias   

[node-qrcode: Generate QR Codes in Node](https://github.com/soldair/node-qrcode) — The ubiquitous 2D barcodes that can store arbitrary data (like URLs). 

Ryan Day   

- [Fastify 4.29](https://github.com/fastify/fastify) – An update to the 4.x branch of the fast, low overhead Node.js web framework. Note that [v5.1](https://github.com/fastify/fastify/releases/tag/v5.1.0) remains the absolute latest version, however.
- [better-sqlite 11.7](https://github.com/WiseLibs/better-sqlite3) – Neat way to use SQLite from Node and Electron. SQLite is bumped up to[v3.47.2](https://www.sqlite.org/releaselog/3_47_2.html).
- [ExpressoTS 3.0](https://expresso-ts.com/) – TypeScript framework for server-side apps.
- [Piscina 4.8](https://github.com/piscinajs/piscina) – Efficient worker thread pool implementation.
- [pnpm 9.15](https://github.com/pnpm/pnpm/releases/tag/v9.15.0) – The alternative, efficient package manager.
- [node-cron 3.3](https://github.com/kelektiv/node-cron/releases/tag/v3.3.0) – Run functions / commands on a schedule.
- [AlaSQL.js 4.6](https://github.com/AlaSQL/alasql) – Isomorphic JavaScript SQL database.    

**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|*).
