Adventures in Nodeland logo

Adventures in Nodeland

Subscribe
Archives
August 8, 2022

25 Releases, Node.js Snapshosts and many others Adventures in Nodeland - Issue #71

Hi Everyone, this edition was assembled after I came back from a week in the mountains… I thought it would be a light edition, instead we are featuring 25 releases, many news and a lot of interesting articles. Check it out!

Fastify

Release Radar · June 2022 Edition | The GitHub Blog
Release Radar · June 2022 Edition | The GitHub Blog
It’s been a crazy couple of months with the end of financial year and lots of products shipping. Our community has been hard at work shipping projects too.
github.blog
Release Radar · June 2022 Edition | The GitHub Blog
Release Radar · June 2022 Edition | The GitHub Blog
It’s been a crazy couple of months with the end of financial year and lots of products shipping. Our community has been hard at work shipping projects too.
github.blog

We have added license check on all our repositories: https://github.com/fastify/workflows/issues/49.

Last week had a massive amount of updates and releases:

  • @fastify/cors v8.1.0 significantly improve the performance by 10%, thanks to an amazing contribution.
  • aws-lambda-fastify v3.1.0 adds the enforceBase64 option to support compressed responses.
  • @fastify/oauth2 v6.0.0 updates to simple-oauth2 v4 and fastify v4.
  • @fastify/autoload v5.2.0 adds supports for swc!
  • light-my-request v5.4.0 adds support for pipeline in Node v16.
  • @fastify/passport v2.2.0 adds support for openid-client and fix Strategy.fail().
  • @fastify/view v7.1.0 extend TS interface for route-specific options.
  • @fastify/websocket v7.0.0 ensures that setErrorHandler functions run for errors thrown before the WebSocket is upgraded.
  • @fastify/type-provider-json-schema-to-ts v2.1.0 add FastifyPluginAsyncJsonSchemaToTs and FastifyPluginCallbackJsonSchemaToTs plugin types.
  • @fastify/kafka v2.0.0 contains the update to Fastify v4!
  • @fastify/any-schema v3.0.0 is a general update and dependency bump.
  • fastify-plugin v4.1.0 rename correctly the named export with scoped modules.
  • @fastify/etag v4.1.0 does an update and adds validation of algorithm at register time.
  • fastify-cli v5.0.0 removes the eject-ts command in favor of a single eject command.
  • @fastify/type-provider-typebox v2.3.0 fixes the validation error responses.
  • @fastify/fastify-soap-client v2.1.0 adds typings.
  • @fastify/zipkin v3.1.0 adds typings.
  • @fastify/route-stats v3.2.0 adds typings.
  • @fastify/env v4.1.0 adds typings.
  • @fastify/accepts-serializer v5.1.0 adds typings.
  • fastify v4.4.0 fixes quite a few bugs in the typings, makes it easier to use own logger and - last but not least - contains several commits that improve our docs!

Pino

  • thread-stream v2.0.1 fix support for pkg.
  • pino v8.4.0 adds support for the errorKey option and fixes the dedup option with multistream.
  • pino-socket v7.0.0 adds a few improvements: emit an reconnectFailure event, replace onSocketClose by emitting an event, and introduce onBeforeDataWrite callback.
  • pino-mongodb v4.1.0 makes exit pino-mongodb when stdin is closed.

Node.js

bootstrap: implement run-time user-land snapshots via --build-snapshot and --snapshot-blob by joyeecheung · Pull Request #38905 · nodejs/node · GitHub
bootstrap: implement run-time user-land snapshots via --build-snapshot and --snapshot-blob by joyeecheung · Pull Request #38905 · nodejs/node · GitHub
This patch introduces –build-snapshot and –snapshot-blob options for creating and using user land snapshots. For the initial iteration, user land CJS modules and ESM are not yet supported in the snapshot, so only one single file can be snapshotted (users can bundle their applications into a single script with their bundler of choice to build a snapshot though).
github.com
bootstrap: implement run-time user-land snapshots via --build-snapshot and --snapshot-blob by joyeecheung · Pull Request #38905 · nodejs/node · GitHub
bootstrap: implement run-time user-land snapshots via --build-snapshot and --snapshot-blob by joyeecheung · Pull Request #38905 · nodejs/node · GitHub
This patch introduces –build-snapshot and –snapshot-blob options for creating and using user land snapshots. For the initial iteration, user land CJS modules and ESM are not yet supported in the snapshot, so only one single file can be snapshotted (users can bundle their applications into a single script with their bundler of choice to build a snapshot though).
github.com

What will be a user-land snapshot be good for? Significantly speeding up start up time! I can’t wait to see the improvements when this will reach the end users: our test case it’s TypeScript!

Release v5.8.1 · nodejs/undici · GitHub
Release v5.8.1 · nodejs/undici · GitHub
This release of undici fixes quite a serious bug: we should not decode the body while following a redirect.
github.com
Release v5.8.1 · nodejs/undici · GitHub
Release v5.8.1 · nodejs/undici · GitHub
This release of undici fixes quite a serious bug: we should not decode the body while following a redirect.
github.com

We are in the process of increasing the performance of fetch() in Node.js. The first of those steps is to reduce the overhead of AbortController drastically: https://github.com/nodejs/node/pull/44048

News

I’m so proud that NearForm published the case study describing the work of my (ex) team at Treedom. Take a look, we did massively good there:

Building Velocity, Scale and Digital Capability at Treedom - NearForm
Building Velocity, Scale and Digital Capability at Treedom - NearForm
Nearform assisted Treedom in improving its CI/CD pipeline and implemented automated testing across multiple services. Read more about the engagement here.
www.nearform.com
Building Velocity, Scale and Digital Capability at Treedom - NearForm
Building Velocity, Scale and Digital Capability at Treedom - NearForm
Nearform assisted Treedom in improving its CI/CD pipeline and implemented automated testing across multiple services. Read more about the engagement here.
www.nearform.com
Announcing Docusaurus 2.0 | Docusaurus
Today we are extremely happy to finally announce Docusaurus 2.0! 🥳️
After 4 years of work, 75 alphas and 22 betas, the next generation of Docusaurus is ready for prime time.
docusaurus.io
GitHub - moyix/fauxpilot: FauxPilot - an open-source GitHub Copilot server
GitHub - moyix/fauxpilot: FauxPilot - an open-source GitHub Copilot server
Do you want to host GitHub Copilot yourself? Look no further.
github.com
GitHub - moyix/fauxpilot: FauxPilot - an open-source GitHub Copilot server
GitHub - moyix/fauxpilot: FauxPilot - an open-source GitHub Copilot server
Do you want to host GitHub Copilot yourself? Look no further.
github.com
Integrate Stripe the payment gateway with Fastify
by Manuel Spigolon In this article, we will understand how to use Fastify and Stripe as a payment gateway!
backend.cafe

The number of ESM modules on the registry continues to rise, however much more slowly than what the evangelist are proposing. Take a look at the diagram:

Node.js Security Progress Report - Permission System Gets Its First Pull Request - OpenJS Foundation
July was a busy month for improving Node.js security, with reinforcements from the Open Source Security Foundation (OpenSSF) grant to OpenJS! There was the first pull request for the Permission System, a Node.js Security Release, and a new OpenSSL Security Release which meant updates to Node.js v18, v16, and v14, and triaging and fixing HackerOne reports (5 total).
openjsf.org

Nodepad++ v8.4.3 has the best release notes ever:

Notepad++ v8.4.3 - Unhappy Users' Edition | Notepad++
Notepad++ v8.4.3 - Unhappy Users' Edition | Notepad++
2022-07-08 Recently I got a feedback from a user, who has suffered from Notepad++ for several years.
notepad-plus-plus.org
Notepad++ v8.4.3 - Unhappy Users' Edition | Notepad++
Notepad++ v8.4.3 - Unhappy Users' Edition | Notepad++
2022-07-08 Recently I got a feedback from a user, who has suffered from Notepad++ for several years.
notepad-plus-plus.org
Don't miss what's next. Subscribe to Adventures in Nodeland:
GitHub X YouTube LinkedIn