#361 — October 22, 2020

Read on the Web

Node Weekly

Node 15 Released — The new ‘release’ line (the one that gets all the new features first) of Node is here with v14 due to become LTS in the next week or two (more on this below). But what’s actually being delivered with Node 15?

  • An upgrade to the V8 8.6 engine (from 8.4) which brings various JS features into Node such as Promise.any(), logical assignment operators, and String.prototype.replaceAll()
  • Unhandled rejections are now raised as exceptions by default. If there's any one issue you're going to run into that'll get you scratching your head, it's this one. --unhandled-rejections=warn will let you revert this change in the short term, if needed.
  • AbortController is a way to signal cancellations in some Promise-based APIs.
  • N-API 7 (mostly of interest to those building native addons.)
  • npm 7 is included.
  • Experimental support for QUIC – a UDP based transport protocol that also forms the basis for HTTP/3.
  • And while Node 15.0 is out, Node 15.0.1 followed quickly behind to fix a crypto.randomFillSync bug and upgrade to npm 7.0.3.

Video for Your Node App That Streams Beautifully, Everywhere — Automatically deliver the best user experience for every combination of device, browser, location, and bandwidth with Mux's video API. Get started with a $20 credit.

Mux sponsor

A note on Node version numbers

As an odd-numbered version of Node, Node 15 will not become a LTS release eventually in the way that Node 14 is. Be aware of this if considering Node 15 for production use, as you'll be forced to upgrade in mid 2021 when maintenance releases cease.

The official Node release chart shows the current plan:

So if you want an easy maintenance life, stick with (or migrate to) Node 14 for production in the short term, or be prepared for more frequent upgrades if you move to 15.

💻 Jobs

Node.js Developer at X-Team (Remote) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more.

X-Team

Find a Job Through Vettery — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers.

Vettery

🧑‍💻 Interested in running a job listing in this newsletter? There's more info here.

📗 Tutorials

Testing Non-Exported Functions — To test an exported function, just import it. But what about non-exported functions?

Samantha Ming

The --heapsnapshot-near-heap-limit Flag Coming to Node — Lets you specify how many snapshots to take when the Node runtime is about to run out of memory on the heap so you can better track what caused the eventual crash.

Joyee Cheung on Twitter

Building a Modern Backend with TypeScript, PostgreSQL and Prisma — A four part written/video series focused on the role of the database in every aspect of backend development.

Prisma sponsor

Neon Enables Embedding Rust Code in Node.js Apps — Neon is a library and toolchain that makes it possible to create native Node modules using Rust. This is similar to what is possible with C and C++, but with the additional benefits brought by Rust safety guarantees.

Sergio De Simone

Streaming Data from Amazon QLDB to DynamoDB with Node
Matt Lewis

🛠 Code and Tools

supported by Okta

Slonik: A Sophisticated Postgres Client Library with Types, Logging and Assertions — A battle tested framework that abstracts repeating code patterns, protects against unsafe behavior, and provides a rich debugging experience. If you’re working with Postgres from Node at all, this deserves a good look. Also, as of this week’s v23 release, it has migrated to TypeScript away from Flow.

Gajus Kuizinas

Nightwatch.js 1.5: Automated End-to-End Testing from Node — Write end-to-end tests in Node and run them against W3C WebDriver. GitHub repo.

Nightwatch Team

essentia.js: Music and Audio Signal Analysis and Processing — Targeting both real-time and offline use cases, essentia.js is powered by an eponymous C++ library via WebAssembly.

essentia.js

New Relic Is Free Now. So We’ve Got That Going for Us, Which Is Nice

New Relic sponsor

JZZ: A MIDI Library for Node and the Browser — Brings the Web MIDI API to Node so you can send, receive and play MIDI messages from both Node and the browser on Linux, macOS and Windows. (Click on the logo on the official home page for a bit of fun.)

Jazz Soft

Project Fonos: An Open-Source Alternative to Twilio — A system for offering programmable voice as a service on Kubernetes.

Fonoster