Deno v2.5.3
Deno v2.5.3がリリースされています。
パーミッションブローカー (DENO_PERMISSION_BROKER_PATH)
先週に紹介したパーミッションブローカーがリリースされました (#30826)
先週に紹介した時点からの差分として、追加で以下の改善が実施されています:
- 任意でこのフィールドに文字列を設定することで、権限が拒否された際にユーザーへ表示されるメッセージをカスタマイズできるようです。
- Windows でのパーミッションブローカーのサポート (#30894)
DENO_PERMISSION_BROKER_PATHに名前付きパイプへのパスを指定することで有効化できるようです。
deno check
cloudflare:などのDenoがサポートしないURLスキームが検出されるとエラーが発生する問題が修正されています (#30904)。v2.5.2によるリグレッションであったようです (#30898)
また、deno checkコマンドで--v8-flagsオプションがサポートされています (#30868)
deno run
--watchオプションが指定され かつ Deno.addSignalListener()によってSIGINTへのリスナーを登録してる場合、プロセスがSIGINTで終了しなくなる問題が修正されています (#30635)
Deno API
Deno.FsFile#stat()のパーミッションの見直し
read: falseを指定して実行したDeno.open()から返却されたDeno.FsFileに対してstat()メソッドを呼んだ際に、該当ファイルに対する--allow-read権限が要求されるよう挙動が変更されています (#30876)
Deno.FsFile#utime()のパーミッションの見直し
write: falseを指定して実行したDeno.open()から返却されたDeno.FsFileに対してutime()メソッドを呼んだ際に、該当ファイルに対する--allow-write権限が要求されるよう挙動が変更されています (#30872)
Node.js互換性の改善
node:sqlite
--allow-allが指定されている場合のみ ATTACH DATABASE の実行がサポートされました (#30763)
node:timers/promises
setTimeout()でsignalオプションがサポートされています (#30855)
bundleDependencies
bundleDependenciesおよびbundledDependenciesの両方が定義されたnpmパッケージをインストールするとエラーが発生する問題が修正されています (#30875)
Tunnelling
Deno v2.4.1で実装された--connectedオプションが--tunnelにリネームされています (#30786)
typescript-goとの統合について (--unstable-tsgo)
まだマージはされていないですが、deno checkでtypescript-goを利用できるようにするPRが作成されています:
c0fde0e81ec6c7b5e5e7512b2958be93bb3e41fbの時点においては、--apiオプションを指定して子プロセスとして起動したtsgoとプロセス間で通信することによって統合が実現されているようです。
typescript-goは--unstable-tsgoを指定してdeno checkがはじめて実行された際に動的にダウンロードされ、キャッシュされるようです。
現時点ではtypescript-goのフォーク版 (denoland/typescript-go)が利用されています。
Deno Deploy EA に関するアップデート
Prisma Postgresのサポート
先週に紹介した Deno Deploy EAにおけるデータベースのプロビジョニング機能にPrisma Postgresのサポートが追加されたようです:
上記PRで公式ドキュメントが追加されています。
repository_dispatch
Deno Deploy EAがアプリケーションのビルドの開始または終了時に、GitHubリポジトリに対してrepository_dispatchイベントを送信してくれる機能がサポートされたようです:
Deno Deploy EA の名称について
Deno Deploy EA (Early Access)に関するドキュメントの構成などが更新されています:
この更新では Deno Deploy EA を Deno Deploy, 今までのバージョンの Deno Deploy を Deno Deploy Classic と呼ぶように表現が変更されています。