The features I've missed from node.js v16 to v20
Sometimes, in your career, you are focused on other aspects of your tech stack, and you miss some crucial updates in the other parts. For me, now it happens with Node.js. This article is more of a side note summarizing which updates I’ve missed and need to catch up on.
A new core dependency
In Node.js v17 OpenSSL 3.0 was introduced. Compared with the previous OpenSSL 1.1 it has some deprecated APIs and algorithms. The full release note can be found here https://www.openssl.org/blog/blog/2021/09/07/OpenSSL3.Final/. As a result, several packages, such as pnpm, will not work as v16 comes to the end of LTS support.
Updates on Javascript v8 engine
Sequential updates of JavasScript v8 engine:
- to v8.9.5 in Node.js 17
- to v10.1 in Node.js 18
- to v10.7 in Node.js 19
- to v11.3 in Node.js 20
At this point, the v8 engine is equal to Chrome 113.
The following updates I found the most interesting
General language
RegExp improvements
New array methods
- The findLast() and findLastIndex() array methods.
- Methods that change Array and TypedArray by copy
- Resizable ArrayBuffer and growable SharedArrayBuffer
Improvements in Intl
- Improvements to the Intl.Locale API
- Intl.Locale extensions
- The Intl.supportedValuesOf function.
- Intl Enumeration
- Intl.NumberFormat v3 API
- Intl.DisplayNames v2
- Extended timeZoneName option
Objects
Strings
New core features of Node.js
- Readline promise API
- Added support for structured clone
- Added support of fetch as well as FormData, Headers, Request, Response globals.
- Response.json()
- Feature: Fetch: Headers.getSetCookie()
- Blob
- BroadcastChannel
- Exposes the experimental implementation of the Web Streams API on the global scope.
- Test runner module
- Permission model
- WebCrypto