#​561 — January 7, 2025

Read on the Web

Happy New Year! We’re now back every week all the way till mid February, so if you’ve got anything you want to submit for inclusion in a future issue, now’s a great time to hit Reply and let me know 🙂
__
Peter Cooper

Node.js Now Supports TypeScript By Default — It’s been possible to run TypeScript directly with Node.js since v22.6 introduced experimental ‘type stripping’ support, but in the to-be-released-at-any-moment Node 23.6 (or the current Node nightly) you’ll be able to run

1
node yourapp.ts

and it’ll Just Work™. Matt provides some details on how it works and what you’ll be able to do.

Matt Pocock

Memetria K/V: Efficient Redis & Valkey Hosting — Memetria K/V hosts Redis OSS and Valkey for Node.js apps, featuring large key tracking and detailed analytics to manage and optimize application data effectively.

Memetria sponsor

Tackling the ‘1 Billion Row Challenge’ with Node — The 1 Billion Row Challenge (1BRC) arose about a year ago to see how quickly different languages and techniques can be used to aggregate data from a 1 billion line text file. Here’s what one developer learnt trying to optimize the task with Node.

Jacky Efendi

IN BRIEF:

  • The Node project will soon be issuing a CVE for ‘end of life’ Node.js versions, essentially as an official way to notify users of Node 16 and below that they are very much unmaintained and may pose a security risk.

  • As an aside, we learn from the above item that Node 16 is still being downloaded 11 million times a month, despite being EOL for over a year.

  • 📺 A few months ago, Node.js creator Ryan Dahl gave a talk at GOTO Chicago 2024 about Deno 2, covering Deno’s differences to Node and what Deno 2.0 (and JSR) has to offer JavaScript developers, complete with live demos.

Node v23.5.0 (Current) Released — A Node release that slipped in just before 2024 ended. WebCryptoAPI’s Ed25519 and X25519 algorithms are now stable and on-thread hooks are now back.

Antoine du Hamel

Introducing

1
@smoores/epub

: A Package for Working with EPUB FilesEPUB is a popular e-book file format and this new library provides a way to both read and write them. npm package link.

Shane Friedman

Securing Node.js Express APIs with Clerk and React — A guide that teaches you how to authenticate API requests using

1
ClerkExpressWithAuth()

and

1
ClerkExpressRequireAuth()

 middleware.

Clerk sponsor

📄 Build Your Own Site Speed Testing Tool with Puppeteer Henry Price

📄 A Gentle Introduction to Using a Vector Database – Written for Bun, but the approach taken can be used from Node too. Steve Kinney

📄 From Scratch to Server: Creating and Hosting a Node App with SVR.JS – SVR.JS is a full featured configurable HTTP(/2) server with built-in security and compression features. SVR.JS

📄 Shallow Clones vs Structured Clones Phil Nash

🛠 Code & Tools

zx 8.3: A Tool for Writing Better Shell Scripts

1
zx

is an alternative way to run Node that makes it more useful for shell scripting by offering various niceties like process management, argument handling, and commonly used packages like Chalk. v8.3 makes it possible to iterate over a processes’ output using

1
for await

(thanks to

1
Symbol.asyncIterator

), plus there are enhancements to using pipes.

Google

Release It 18.0: A CLI Tool to Automate Package Publishing Tasks — Think things like bumping versions, tagging, creating releases at GitHub or GitLab, changelog generation, etc.

Lars Kappert

MicroDiff 1.5: No Dependency Object and Array Comparison Library — Given two objects or arrays, it returns the differences (think

1
diff

but for JavaScript objects). Boasts high performance and TypeScript support. There’s also an article from 2022 about how it works.

AsyncBanana

jsesc: Get a Stringified, ASCII-Safe Representation of Any Data — Think

1
JSON.stringify()

but instead it returns JavaScript meaning it can support things like maps, sets, and

1
BigInt

s.

Mathias Bynens

CSV Parse: Convert CSV Text into Arrays / Objects — Extends Node’s native transform stream API so you can get up and running quickly – see some example code. Part of a suite of CSV libraries that can also generate and transform CSV more generally.

Adaltas

node-datachannel: libdatachannel Bindings for Node.js

1
libdatachannel

is a standalone C++17-based implementation of various WebRTC standards, as well as WebSockets, for use on POSIX platforms.

Murat Doğan

📰 Classifieds

🚀 Start the year with fewer flakes, faster merges, and less frustration. Don’t let flaky tests disrupt CI — join us live!

🔹 Sell to enterprise with a few lines of code with WorkOS — the modern, flexible identity platform for B2B SaaS. Integrate SSO, SCIM and FGA in minutes, not months.

Schemalint: A Linter for Postgres Schemas — A linter that lets you raise errors on a variety of common matters like name casing, enforcing row level security, or the presence of mandatory columns (so think more like ESLint than a basic formatter). You can also write your own custom rules.

Kristian Dupont

sqs-consumer 11.3: Build Amazon SQS-Based Apps Without Boilerplate — Build SQS-based (Simple Queue Service) apps without the boilerplate. Just define an async function to handle the SQS message processing. If it’s good enough for the BBC..

BBC


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *