Deno v1.29.2

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

Deno.osUptime()

システムが起動してからの経過時間を取得するために、Deno.osUptime()というAPIが追加されました。

利用するには、--unstable--allow-sysの指定が必要です。

Deno.Conn.ref()/unref()

Deno.Connunref()ref()メソッドが追加されました。

これらのAPIの利用には--unstableの指定が必要です。

unref()メソッドを呼ぶと、Deno.unrefTimerなどと同様に、読み込み途中のコネクションが存在したとしてもプロセスの終了がブロックされなくなります。(ただし、効果があるのは読み込みに対してのみで、書き込みについてはunrefを呼んだ場合であってもブロックされます)

ref()メソッドを呼ぶと、unref()されたコネクションをデフォルトの状態に戻すことができます。(通常通り、読み込み途中のコネクションがプロセスの終了をブロックします)

CLIに関するバグ修正

  • --node-modules-dirが指定された際にrequire()でパッケージが適切に解決できないケースがある問題が修正されています
  • deno.json(c)でTypeScriptのcompilerOptions.noErrorTruncationオプションを設定できない問題が修正されています
  • dynamic importが使用されていると、"unhandledrejection"のリスナが呼ばれないケースがあった問題が修正されています
  • deno instlallもしくはdeno uninstallを実行する際に、ロックファイルの自動適用が行われてしまう問題が修正されています

Deno APIに関する修正

  • Deno.memoryUsage()から返却されるrssプロパティに正しい値が設定されない問題が修正されています
  • Deno.permissions.revokeまたはDeno.permissions.requestname: "ffi"が指定された際に、pathオプションにURLオブジェクトを指定できるようになりました。

fetch()関連の修正

下記のケースでプロセスがパニックしてしまう問題が修正されています:

  • 引数に不正な形式のURLが与えられた場合
  • bodyオプションに渡したReadableStreamでエラーが発生した場合

deno lsp関連の修正

  • 下記のケースでTest code lensが表示されない問題が修正されています
    • Deno.test()でテスト名がテンプレートリテラルを使用して定義されている場合
    • 下記のように、関数を使用してテストケースが定義されている場合
      const test = () => ({ name: "some test", fn: () => {} });
      Deno.test(test());
      
  • "Add all missing imports"アクションで正しいimport文が生成されないことがある問題が修正されています
  • プライベートフィールド(#someField)の補完が適切に動作するように修正されています

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

deno_std v0.171.0

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

std/node

Deno v1.29.2で実装されたDeno.osUptimeをベースに、os.uptime()が実装されました。

これにより@sentry/nodeが動かせるようになったようです。 (getsentry/sentry-javascript#3009)

その他には、diagnostics_channelパッケージの初期実装が追加されています。

基本的なAPIは一通り実装されており、組み込みchannelについては今のところ下記のみがサポートされているようです。

  • "net.client.socket"
  • "net.server.socket"

その他には、Astroのサポートに向けたhttpパッケージのバグ修正などが行われています。

std/flags - 型推論の改善

下記のケースで型推論がうまく動作しなかった問題が修正されています:

  • collectオプションとstringbooleanなどのオプションを併用された場合
  • aliasオプションに配列で複数のエイリアスが指定された場合

std/path - basename()のバグ修正

basename()で末尾の/が適切に取り除かれない問題が修正されています。

std/http/file_server - --headerオプションがサポート

ファイルサーバで--headerオプションがサポートされています。

例えば、--header 'Cache-Control: no-cache'を指定した場合、各レスポンスにCache-Control: no-cacheが付与されます。


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

Earthstar

分散ストレージプロトコル

サーバなどのリファレンス実装がDenoで記述されているようです。