Deno v1.17.2

Deno v1.17.2がリリースされました。

バグ修正などが中心に行われています。

主な変更点:

  • deno testdeno fmtで拡張子が.mts.cjs, 及び.ctsのファイルがサポートされました。

  • JSON modulesを使用するとdeno bundleが失敗する問題が修正されました。

  • ファイルの末尾に空行があると、全コードが実行されていたとしてもカバレッジが100%にならない問題が修正されました。

  • SubtleCrypto.exportKeyでAES/HMACキーをJWK形式でエクスポートする際にbase64ではなくbase64urlを使用するように修正されました。

  • SubtleCrypto.deriveKeyでAES-CTRがサポートされました。

  • FFI経由で関数を呼ぶ際に不正な形式のパラメータを渡すとプロセスがパニックする問題が修正されました。

  • 以下のような名前付き関数を使用したテストケースでdeno lspのテスト用コードレンズが動かない問題が修正されました。

    Deno.test(function name() {});
    
  • Deno.addSignalListener()SIGSEGVなどのシグナルのハンドラを登録しようとした際に、プロセスがパニックする問題が修正されました。


https://github.com/denoland/deno/releases/tag/v1.17.2

deno_std v0.120.0

deno_std v0.120.0がリリースされました。

crypto

Tigerハッシュがサポートされました。

uuid

version()が実装されました。

node

  • https.request()が実装されました。
  • process.execPathが実装されました。
  • vm.runInThisContext()が追加されました。
  • process.exit()を使うと'exit'イベントが2回発火する問題が修正されました。
  • fs.readdir()でディレクトリが存在しなかったときにエラーが正しく扱われない問題が修正されました。
  • child_process.spawnenvオプションに数値やBoolean型の値を指定できるようになりました。

path/glob

joinGlobs()extendedオプションのデフォルト値がtrueに変更されました。

fs/expand_glob

expandGlob()extendedオプションのデフォルト値がtrueに変更されました。

testing/asserts

assertEquals0-0が不一致と判断される問題が修正されました。


https://github.com/denoland/deno_std/releases/tag/0.120.0

設定ファイル(deno.json)の自動読み込みについて

以下のPRでDenoに設定ファイルの自動読み込み機能が実装されています (まだマージはされていません)

Denoを実行する際に--configオプションが指定されなかった際は以下の名前のファイルを探し、見つかったらそれを自動的に読み込む機能のようです。

  • deno.json
  • deno.jsonc

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

deno_std/testingへのJestライクなアサーションAPIの追加について

deno_stdtesting/expect.tsを追加し、JestライクなアサーションAPIを提供することが提案されています。

expect(add(1, 2)).toEqual(3)

提案の背景としては以下のような理由があるようです。

  • Node.jsにおけるJestの使用率の高さ
  • VitestでJest互換なAPIが実装されたこと

まだ確定ではありませんが、将来的には実装される可能性がありそうです。


https://github.com/denoland/deno_std/issues/1779

deno_std/mime/multipartの削除に関する提案

deno_stdからmime/multipartを削除することが提案されています。

背景としては、DenoにはすでにFormDataが実装されているため、mime/multipartの必要性が低いというのが理由のようです。

今のところ、Deno v1.18のリリースに合わせて非推奨化し、Deno v1.19で削除する予定のようです。


https://github.com/denoland/deno_std/issues/1778

esm.sh v61

esm.shのv61がリリースされました。

React 17の新しいJSX Transformのサポートが追加されています。


https://github.com/alephjs/esm.sh/releases/tag/v61

deno_which

whichコマンドのように実行可能ファイルのパスを探すためのDenoモジュール


https://github.com/dsherret/deno_which