Deno v2.6.9

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

deno doc

Markdownファイルのプレビューがサポートされています (#32024)

$ deno doc README.md

deno docコマンドに--agentsオプションの追加 (#31987) が検討されており、それに向けた対応であると思われます。

--agentsオプションの追加についてはまだマージはされていませんが、すでにPRも作成されています (#32044)

deno upgrade

--checksumが追加されています (#31804)。ダウンロードされたアーカイブが改ざんされていないか検査できます。

$ deno upgrade --checksum 8a677a4b0cea1a25aaecfc70d6c6a288f9ad69af0a92e9e9d513cabaaf3c688f

チェックサムはGitHub Releaseページの Assets として配置してあります。

deno compile

npm:をエントリーポイントに指定した場合、デフォルトで/tmp/deno_nm/yyyy-mm-ddディレクトリにnode_modulesを作成し、そこに依存パッケージをインストールしてコンパイルするよう挙動が修正されています (#32084)

node:worker_threads

下記APIが実装されています:

  • threadName (#32072)
  • Worker#cpuUsage() (#32050)
  • BroadcastChannel#ref() & BroadcastChannel#unref() (#32036)
  • Worker#[Symbol.asyncDispose]() (#32051)

また、MessageChannelの一方のMessagePortcloseされたら、もう一方のMessagePortでもcloseイベントが発火されるよう改善されています (#32092)

node:sqlite

DatabaseSync#setAuthorizer()が実装されています (#32009)

node:child_process

ChildProcessstdin/stdout/stderrReadable/Writableではなく Socket (node:net) インスタンスが設定されるよう改善されています (#31975, #32071)

また、シグナルによってプロセスが停止した場合は ChildProcess.exitCodenullに設定されるよう挙動が修正されています (#32081)

node:zlib

ZstdCompress/ZstdDecompressが実装されています (#32025)

node:tty

isatty()に0, 1, または2以外の値が渡された際も適切に動作するよう実装が改善されています (#31912)

node:test

.only()が使用された際に終了コードとして1が返されないよう挙動が修正されています (#32043)

require()

require()によって読まれたESMモジュールからnpm:jsr:パッケージの読み込みがサポートされています (#31974)

--allow-import

--allow-importのデフォルトの許可対象ホストにraw.esm.sh:443が追加されています (#32030)

deno packコマンドについて

まだマージはされていませんが、deno packコマンドを実装するPRが作成されています。

30189e1b9e4ee0a26c0a27f5070f41f44feed4d8時点での実装によると、現在のプロジェクト内の各種パッケージに対して、TypeScriptファイルのJavaScript形式へのトランスパイルや.d.tsファイル・package.jsonの生成を行った上でtarballを作成してくれるようです。作成されたtarballはnpm publishコマンドによってnpmレジストリへ公開することができます。

なお、もしDeno APIに依存しているコードがある場合は、自動的に@deno/shim-denoを依存関係に追加してくれるようです。

dntとの兼ね合いが気になるところではありますが、複雑ではないユースケースにおいてはdeno packによってdntを代替できる可能性がありそうです。

Cliffy v1

DenoのCLIフレームワークであるCliffyのv1.0.0がリリースされています。

@cliffy/command

Command#argument()の実装とコマンドライン引数への説明 (description) の指定のサポート (#843, #844) やgenerateShellCompletions()の追加 (#808)などが行われています。