Deno v1.17.2
Deno v1.17.2がリリースされました。
バグ修正などが中心に行われています。
主な変更点:
deno testとdeno 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.spawnでenvオプションに数値やBoolean型の値を指定できるようになりました。
path/glob
joinGlobs()のextendedオプションのデフォルト値がtrueに変更されました。
fs/expand_glob
expandGlob()のextendedオプションのデフォルト値がtrueに変更されました。
testing/asserts
assertEqualsで0と-0が不一致と判断される問題が修正されました。
https://github.com/denoland/deno_std/releases/tag/0.120.0
設定ファイル(deno.json)の自動読み込みについて
以下のPRでDenoに設定ファイルの自動読み込み機能が実装されています (まだマージはされていません)
Denoを実行する際に--configオプションが指定されなかった際は以下の名前のファイルを探し、見つかったらそれを自動的に読み込む機能のようです。
deno.jsondeno.jsonc
https://github.com/denoland/deno/pull/13313
deno_std/testingへのJestライクなアサーションAPIの追加について
deno_stdへtesting/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モジュール