Deno v1.21.1

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

ネイティブHTTPサーバ(Deno.serveHttp)の変更点

Deno v1.20でレスポンスボディの自動的な圧縮がサポートされました。

このリリースでは、レスポンスボディにReadableStreamが指定された際の圧縮がサポートされています。

その他にもいくつかのパフォーマンス改善が実施されています。

deno taskで引数に--を指定した際の挙動が変更

例えば、deno.jsonで次のようなタスクが定義されていたとします。

{
  "tasks": {
    "test": "deno test --allow-read"
  }
}

例えば、下記のように--を指定してタスクを実行したとします。

$ deno task test -- some-test.js

この場合、v1.21.0時点では次のようにコマンドが実行されていました。

$ deno test --allow-read "some-test.js"

今回リリースされたv1.21.1では、次のように変更されています。

$ deno test --allow-read "--" "some-test.js"

Deno.inspectの変更点

  • strAbbreviateSizeオプションが追加されました。
    • 文字列がこのオプションで指定された長さを超えると省略して表示されます。
    • デフォルト値は100です。
  • compact: falseが指定された際であっても、空のIterableオブジェクトはコンパクト化して表示するように修正されています。

deno benchの変更点

deno benchで2つ以上のファイルを実行した際に、前のファイルのベンチマーク結果が次のファイルに影響を与えてしまう問題が修正されました。

この問題は、例えば、1つ目のベンチマークファイルでグルーピング(groupオプション)を利用しているが、2つ目のベンチマークファイルではグルーピングを利用していないようなケースで発生していたようです。

その他にも、Exit sanitizerによるオーバーヘッドの削減が実施されています。

deno testの変更点

Deno v1.21でテストケースの実行時にログに出力された内容がキャプチャされるように改善されました。

このリリースでは、Deno.spawn()などでstdoutstderrオプションに"inherit"を指定した際に、サブプロセスの出力内容もキャプチャされるように改善されています。

他にも、Workerの出力内容もキャプチャするように改善されています。

その他の変更点

  • Deno.spawn(Sync)stdinなどのオプションに"piped"を指定した際にエラーを発生させるよう修正されました。
  • Worker.terminateが呼び出し元のスレッドをブロックしないように修正されました (https://github.com/denoland/deno/issues/13705)

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

deno_std v0.137.0

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

testing/mock

stub()spy()の使用時に、対象オブジェクトのメソッドの型が自動で推論されるように修正されました。(型定義の修正のみで挙動には影響はありません)

http/server

serve()serveTls()によるサーバの起動時に、Listen中のアドレスがログに出力されるように変更されました。 (ログを無効化したいときはserveListenerなどのAPIを使う必要があります)

wasi

Contextのコンストラクタ引数がオプショナルに変更されました。

node

deno repl --compatを指定してREPLを起動した際に、crypto.randomBytesなどを実行するとエラーが発生する問題が修正されました。 (--compatを指定すると、cryptoがWeb Crypto APIのCryptoオブジェクトではなく、deno_std/node/cryptoパッケージを参照してしまうのが原因のようです)


https://github.com/denoland/deno_std/pull/2165

Aleph.js v1.0.0-alpha.28

Aleph.js v1.0.0-alpha.28がリリースされました。

buildコマンドを実行した際に、esbuildを使用してモジュールがバンドルされるようになりました。

これによりAleph.jsのデモサイトでLighthouseの全スコアが100点になったようです。


https://github.com/alephjs/aleph.js/releases/tag/1.0.0-alpha.28

deno.landにShowcaseページが追加

DenoのホームページにShowcaseページが追加されています。

このページにはDeno製のプロダクトなどが掲載されています。


https://deno.land/showcase

deno-opn v2

deno-opn v2.0.0がリリースされています。

opn()open()appオプションがwithにそれぞれリネームされています。


https://github.com/hashrock/deno-opn/releases/tag/v2.0.0

Ruck

RuckというReactベースのフレームワークが公開されています。

コンポーネントレベルでのデータ読み込みやカスタムのルーティングロジックのサポートなど、既存のフレームワークでは解決が難しい問題の解消などを目指しているようです。