#​559 — December 10, 2024

Read on the Web

🎄 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
Node.js Weekly

Node.js Delivers First LTS with require(esm) Enabled — It’s a modest milestone, but Node v22.12.0 (LTS) 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 to send in feedback and bug reports.

Sarah Gooding

Node's Corepack: Version Control for Package Managers — A quick intro to a commonly misunderstood (and mildly contentious) part of the modern Node distribution: Corepack. It’s a (still) experimental tool for managing package managers.

Trevor I. Lasn

Memetria K/V: High-Performance Key-Value Hosting — 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:

Implementing Filtered Semantic Search Using pgvector and JS — 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 Adam Rackis

📄 Taking Regular Screenshots of My Website – A nifty robust approach using Playwright and GitHub Actions. Alex Chan

📄 Building Your Own npm create Package – You'll have seen various scaffolding tools using this technique. (A Different) Alex Chan

📄 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 Farhan CK

📺 The V8 JavaScript Engine: Let's Read The Code Ants Are Everywhere

🛠 Code & Tools

🖼️ wasm-vips: It's libvips, Compiled to WebAssemblylibvips is a popular, highly efficient image processing library written in C. You can use it via 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.)

Kleis Auke Wolthuizen

Build Fully Functional Apps in Minutes, Not Months — Create, run, edit, and deploy full-stack web apps with Bolt.

StackBlitz sponsor

Undici v7.1.0: Now with Stable HTTP/2 Support — Last week we featured the latest major v7 version of Node’s powerful HTTP/1.1 client. Now, after a little discussion, they’re marking Undici’s HTTP/2 support stable too (notes on HTTP/2 support in the docs).

Matteo Collina et al.

tldts: Extract Domain Names, Subdomains and Suffixes from URLs — 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! Learn to flag unreliable tests early and keep your CI/CD pipeline running smoothly.


📬 Hookdeck: A serverless queue to reliably send, receive, transform, filter, and route events across your event-driven apps.

Pelias 4.0: A Modular, Stand-Alone 'Coarse' Geocoder — 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.

Pelias

node-qrcode: Generate QR Codes in Node — The ubiquitous 2D barcodes that can store arbitrary data (like URLs).

Ryan Day

  • Fastify 4.29 – An update to the 4.x branch of the fast, low overhead Node.js web framework. Note that v5.1 remains the absolute latest version, however.

  • better-sqlite 11.7 – Neat way to use SQLite from Node and Electron. SQLite is bumped up to v3.47.2.

  • ExpressoTS 3.0 – TypeScript framework for server-side apps.

  • Piscina 4.8 – Efficient worker thread pool implementation.

  • pnpm 9.15 – The alternative, efficient package manager.

  • node-cron 3.3 – Run functions / commands on a schedule.

  • AlaSQL.js 4.6 – Isomorphic JavaScript SQL database.