Deno v1.21.2
Deno v1.21.2がリリースされました。
変更点:
lib.dom.extras.d.tsが追加されました。lib.dom.d.tsを読み込んでもURLPatternが利用できない(型エラーが発生する)問題を解消するための修正です。- このファイルには、
URLPatternに関する型定義が含まれています。 lib.dom.d.tsを読み込むと自動でこのファイルも読み込まれます。
deno test --coverageによる計測対象から.snapファイルが除外されるように修正されました。 (deno_stdでスナップショットテスティングがサポートされたため)- HTTPサーバ(
Deno.serveHttp)でレスポンスボディにReadableStreamを指定した際に、対象のリソースが自動で閉じられない問題が修正されました。 deno taskでタスクの引数に-を含むオプションを指定した際に、そのオプションが適切に渡されない問題が修正されました。deno testやdeno benchの引数にfile:形式のURLを指定すると、プロセスがパニックする問題が修正されました。
https://github.com/denoland/deno/releases/tag/v1.21.2
deno_std v0.138.0
deno_std v0.138.0がリリースされました。
testing
assertSnapshot()(testing/snapshot)で複数行に渡る文字列の取り扱いが改善されました。
その影響により、deno_stdをv0.138.0にアップデートするとテストが失敗する可能性があります。
その場合は--updateオプションでスナップショットを更新する必要あります。
その他にも、testing/assertsモジュールにassertFalse()が追加されています。
node
dns/promisesパッケージのlookup()が実装されました。moduleパッケージをWorkerから読み込むとプロセスがハングする問題が解消されました。
bytes
bytes/equalsパッケージから今までprivateであったequalSimd()とequalsNaive()が公開されました。
https://github.com/denoland/deno_std/releases/tag/0.138.0
Denoの全コマンドで--no-check=remoteをデフォルトの挙動にする
下記のissueでdeno runなどの各コマンドで--no-check=remoteオプションの挙動をデフォルト化することが提案されています。
現在、例えばdeno runを実行すると、デフォルトではリモートモジュールも含めて全TypeScriptファイルが型チェックされます。
この--no-check=remoteの挙動がデフォルト化された場合、ローカルのTypeScriptファイルのみが型チェックされるように挙動が変わります。
今のところ、この変更はDeno v1.22でのリリースが想定されているようです。
また、Deno v1.23ではdeno runなどの各コマンドでの型チェックがデフォルトで無効化されることが予定されています。(型チェックを行いたいときはdeno checkコマンドを利用します)
https://github.com/denoland/deno/issues/14498
deno testコマンドの--docオプションをデフォルトで有効化する
deno testコマンドには--docオプションを付与することで、MarkdownファイルやJSDocコメント中のコードブロックに対して型チェックを行う機能があります。
現在、以下のissueで、deno testコマンドの--docオプションの挙動をデフォルトで有効化することが提案されています。
この変更はDeno v1.22にてリリース予定のようです。
https://github.com/denoland/deno/issues/14499
deno.json(c)でのパーミッションの宣言について
現在、deno.json(c)でDenoのパーミッションを宣言できるようにするPRが作成されています。
この機能が入ると、下記のようにdeno.json(c)ファイルでパーミッションを管理できるようになりそうです。
{
"permissions": {
"read": true,
"env": ["PORT"]
}
}
この機能も、今のところDeno v1.22でのリリースが予定されているようです。
WASMモジュールのimportについて
Denoで.wasmファイルをimportできるようにするPRが作成されています。
リリース時期などは未定ですが、この機能が入れば、以下のように.wasmモジュールを直接importできるようになりそうです。
import { some_function } from "./some_module.wasm";
https://github.com/denoland/deno/pull/14485
Deno.emit()とDeno.formatDiagnostics()の削除について
現在、Deno.emit()とDeno.formatDiagnostics()を削除するPRが作成されています。
BREAKING: Remove unstable Deno.emit and Deno.formatDiagnostics APIs (#14463)
詳しい内容については、以下のissueにて議論や提案などが行われているため、もし興味がありましたらsubscribeしておくととよいかもしれません。