Deno v2.2のリリースについて

Deno v2.2は先週にリリースが計画されていたようですが、おそらくは後述するV8 13.4へのアップデートなどの関連で、リリースが見送られたようです:

V8のアップグレードとJavaScriptファイルでのExplicit Resource Managementのサポートについて

直近でDeno内部のV8を13.4へアップデートするPRがマージされています:

おそらく、Deno v2.2でリリースされるのではないかと思います。

この対応に合わせて、JavaScriptファイルでExplicit Resource Managementを利用できるようにする対応が進められています (今まで、Explicit Resource ManagementはTypeScriptでのみサポートされていました)

deno fmtでのTOMLのサポートについて

deno fmtコマンドにTOMLファイルのフォーマットをサポートするためのPRが作成されています:

dprint-plugin-tomlをベースに実装されているようです。

2.2.0のマイルストーンには含まれていないため、この機能のリリースは少し先になるかもしれません。

deno transpile コマンドの追加に関する提案

deno transpileコマンドをDenoに追加する提案が行われています:

まだ正式に実装されるかどうかはわかりませんが、issueにそれなりにリアクションがついていそうなので紹介します。

機能としては、.tsファイルを.jsファイルへトランスパイルしつつ.d.tsも生成することなどが想定されているようです。Denoでnpmパッケージを公開したい場合などに便利そうではないかと思いました。

Deno v2.1.10

Deno v2.1.10がリリースされています。

deno compile - --includeオプションがdeno compileで生成された実行可能ファイルを検出するよう改善

--includeオプションで指定されたディレクトリにすでにdeno compileで生成された実行可能ファイルが存在する場合に、それが新しく生成される実行可能ファイルに含まれてしまわないよう改善されています (#27877)

Streams API - ReadableStreamに関するバグ修正

ReadableStream#pipeToなどの使用時に、該当のReadableStreamでエラーが発生するとそれを捕捉することができない問題が修正されています (#27975)

Node.js互換性の改善

npmパッケージ中の拡張子を持たないモジュールの取り扱いが改善

npmパッケージ中の拡張子を持たないモジュールをCommonJS形式で取り扱うよう修正されています (#27904)

node:zlib - BrotliCompressBrotliDecompressの正式な実装が公開

node:zlibにおいてBrotliCompressBrotliDecompressの正式な実装がexportされています (#27943)

これら2つのAPIはすでに実装されていたものの、誤って空の実装の方がexportされていたようです。

node:crypto - JWK形式でのed25519/x25519の鍵生成に関するバグ修正

JWK形式で生成されたed25519/x25519形式の秘密鍵においてxプロパティーが未定義であった問題が修正されています (#27990)

node:http - request()の改善

request()においてwebsocket以外の値が設定されたUpgradeヘッダーを適切に処理するよう改善されています (#27931)

また、リクエストのプロキシーをサポートするためにrequest()pathオプションにURLを設定できるよう改善されています (#27871)

deno_stdのリリース

deno_stdのリリースが行われています:

@std/cli@1.0.13 - ProgressBar/ProgressBarStreamの追加

@std/cli@1.0.13がリリースされています。

プログレスバーを表示するためのProgressBar (@std/cli/unstable-progress-bar)とProgressBarStream (@std/cli/unstable-progress-bar-stream)が追加されています (#6378)

import { ProgressBar } from "jsr:@std/cli@1.0.13/unstable-progress-bar";

const bar = new ProgressBar(Deno.stdout.writable, { max: 100 });
for (let i = 0; i < 100; i++) {
  bar.add(1);
  await new Promise((ok) => setTimeout(ok, 100));
}
await bar.end();

@std/fs@1.0.12 - Node.jsサポートの改善

@std/fs@1.0.12がリリースされています。

@std/fsのNode.jsサポートの改善に向けて、以下のモジュールが追加されています:

  • @std/fs/unstable-rename (rename及びrenameSyncが提供されます)
  • @std/fs/unstable-read-file (readFile及びreadFileSyncが提供されます)
  • @std/fs/unstable-make-temp-dir (makeTempDir及びmakeTempDirSyncが提供されます)