Laufzeitumgebung für JavaScript: Node.js 18 führt neue globale Fetch-API ein

Ab Oktober 2022 geht das aktuelle Release der JS-Laufzeitumgebung in den Long-term-Support über. Update und Support erhält Node.js 18 bis April 2025.

In Pocket speichern vorlesen Druckansicht

(Bild: TierneyMJ / Shutterstock.com)

Lesezeit: 2 Min.

Die Node.js-Community hat Version 18 der gleichnamigen JavaScript-Laufzeitumgebung vorgelegt. Das Update bringt neben der nun standardmäßig aktivierten Global Fetch API und einem neuen Test-Runner-Modul Unterstützung für die JavaScript-Engine V8 in Version 10.1.

Die Community-Richtlinien sehen vor, dass gerade Versionsnummern Long-term Support (LTS) erhalten – so auch Node.js 18. Ab Oktober 2022 ist das aktuelle Release als LTS-Version unter dem Codenamen "Hydrogen" verfügbar. Die Unterstützung ist bis April 2025 vorgesehen.

Mit Node.js 18 steht Nutzerinnen und Nutzern ab sofort standardmäßig eine globale Fetch-API zur Verfügung – noch hat sie allerdings einen experimentellen Status. Die Implementierung stammt laut Blogbeitrag von undici und orientiert sich an dem Modul node-fetch, das ursprünglich auf undici-fetch basierte. Gemäß Blogbeitrag hat das Node.js-Entwicklerteam versucht, möglichst nah an die Spezifikation heranzukommen – hat dabei jedoch einige Bereiche, die eine Browser-Umgebung erfordern, weggelassen.

Der Status experimentell soll erst entfallen, wenn weitere Tests hinzugefügt sind und die API ausreichend auf ihre Funktionsweise geprüft ist. Interessierte können über das nodejs/undici-Repository und die darin liegenden, mit fetch gekennzeichneten Issues, mithelfen. Wer die neue API nicht nutzen möchte, kann sie über den Befehl --no-experimental-fetch deaktivieren.

Das Update hat darüber hinaus experimentelle Unterstützung für die Web Streams API im globalen Scope im Gepäck. Eine Liste aller nun global verfügbaren APIs findet sich im Beitrag auf dem node.js-Blog.

heise-Konferenz zu Enterprise-JavaScript

heise Developer und dpunkt.verlag richten am 22. und 23. Juni 2022 die enterJS im Darmstadtium in Darmstadt aus. Die JavaScript-Konferenz bietet zahlreiche Vorträge und Workshops zu JavaScript im Allgemeinen, die Frameworks (Angular, Node.js, React und Svelte) im Speziellen sowie TypeScript, Tools und Techniken rund um die Programmiersprache.

Zu Node.js finden sich die folgenden Vorträge im Programm:

Weitere Informationen zur enterJS sowie Zugang zu den Tickets bietet die Konferenzwebseite.

Das Entwicklerteam hinter der JavaScript-Laufzeitumgebung bietet mit dem aktuellen Release ein neues (noch experimentelles) Test-Runner-Modul. node:test soll das Erstellen von JavaScript-Tests zur Ausgabe von Ergebnissen im TAP-Format erleichtern. Via import test from 'node:test'; lässt sich das neue Modul aufrufen. Der Blogbeitrag zeigt zur Veranschaulichung ein Beispiel für die Implementierung eines Parent-Tests mit zwei Untertests:

test('top level test', async (t) => {
  await t.test('subtest 1', (t) => {
    assert.strictEqual(1, 1);
  });

  await t.test('subtest 2', (t) => {
    assert.strictEqual(2, 2);
  });
});

Es gilt zu beachten, dass das neue Modul lediglich mit dem Präfix node: verfügbar ist – es steht für das Laden eines Core-Modules.

Node.js 18 steht über Nodejs.org zum Download bereit. Nähere Informationen zum Release sowie eine Liste aller in der aktuellen Version enthaltenen Commits finden sich im Blog zur Laufzeitumgebung.

(mdo)