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.json
deno.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モジュール