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 testdeno 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オプションの挙動をデフォルト化することが提案されています。

–no-check=remote on by default for all subcommands (#14498)

現在、例えば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 test –doc” on by default (#14499)

この変更はDeno v1.22にてリリース予定のようです。


https://github.com/denoland/deno/issues/14499

deno.json(c)でのパーミッションの宣言について

現在、deno.json(c)でDenoのパーミッションを宣言できるようにするPRが作成されています。

[WIP] feat: support “permissions” in config file (#14520)

この機能が入ると、下記のようにdeno.json(c)ファイルでパーミッションを管理できるようになりそうです。

{
  "permissions": {
    "read": true,
    "env": ["PORT"]
  }
}

この機能も、今のところDeno v1.22でのリリースが予定されているようです。


WASMモジュールのimportについて

Denoで.wasmファイルをimportできるようにするPRが作成されています。

WIP: wasm modules in core (#14485)

リリース時期などは未定ですが、この機能が入れば、以下のように.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しておくととよいかもしれません。


https://github.com/denoland/deno/pull/14463