Deno v1.17.3

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

このリリースでは、バグ修正を中心に実施されています。

変更点:

  • deno install--allow-allを付与した際に、パーミッションが分解されてスクリプトが作成されないように修正されました。
    • 具体的には、今まではdeno install--allow-allを指定すると、下記のようなスクリプトが作成されていました。

      #!/bin/sh
      # generated by deno install
      exec deno run --allow-read --allow-write --allow-net --allow-env --allow-run --allow-ffi --allow-hrtime --quiet --unstable 'http://localhost:3000/bin.ts' "$@"
      
    • この形式でスクリプトが作成されてしまうと、将来的に新しい--allow-*オプションが導入された際などにスクリプトが意図した通りに動作しなくなってしまうため、この修正が実施されました。

  • deno bundledeno compile--outputオプションにディレクトリを指定できるようになりました。
    • ディレクトリを指定した際は、バイナリ名は自動で推論されるようです。
  • deno coverageコマンドで型チェックが行われなくなりました。
  • あるモジュールが複数のファイルからimportされていた場合などに、適切にカバレッジが収集されなくなる問題が修正されました。
  • WorkerDeno.memoryUsage()が使えない問題が修正されました。
  • lib.deno_core.d.tsのエラーが修正されました。

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

deno_std v0.121.0

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

変更点:

  • crypto: MD4がサポートされました。
  • http/file_server: --quietオプションによりログ出力を無効化できるようになりました。
  • node: zlibパッケージが実装されました。
  • node/fs: fs.write()fs.writeSync()が実装されました。
  • node/http: ClientRequest#abortが実装されました。また、'response'イベントが発火されるように修正されました。
  • node/url: url.format()の互換性が向上しました。

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

deno vendorコマンドの提案について

下記のissueでDenoにdeno vendorコマンドを追加する提案が行われています。

使い方としては deno runと同様にエントリポイントを指定します。

$ deno vendor main.ts

こうすることで、main.tsから再帰的にimportされているサードパーティモジュールが _vendorディレクトリに保存されます。 さらに、リモートモジュールを_vendorディレクトリから読み込みために_vendor/import_map.jsonも一緒に作成されます。

このImport mapファイルを利用することで、_vendorディレクトリに保存されたサードパーティモジュールを読み込むことができます。

$ deno run --import-map=_vendor/import_map.json main.ts

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

  • サードパーティモジュールをバージョン管理に含めたい場合がある
  • デバッグのため、サードパーティモジュールのソースを一時的に書き換えたい場合がある

https://github.com/denoland/deno/issues/13346

Denoからwindow変数を削除する提案

下記のissueでDenoからwindow変数を削除する提案が行われています。

提案の背景としては、多くのWebフレームワークがブラウザの判定のために window変数を利用していることにあるようです。

その関係で、Denoからそれのフレームワークを利用してサーバサイドレンダリングをしようとした際に、誤ってブラウザと判定されてしまうなどの問題があるとのことです。

この変更は、Deno 2.0で実施される可能性があるかもしれません。


https://github.com/denoland/deno/issues/13367

deployctl v0.5.0

昨年、アーカイブされたdeployctlの開発が再開されました。

それに合わせて、deployctlのv0.5.0がリリースされています。

このリリースでは、check, run, 及びtypesサブコマンドが削除されています。

また、新機能としてdeployctl deployコマンドが実装されています。 このコマンドを利用することで、スクリプトをDeno Deployへデプロイできます。

元々deployctlはDeno Deploy向けのローカル開発ツールという位置づけでしたが、今後はDeno Deployとやり取りするためのツールに変わっていくようです。


https://github.com/denoland/deployctl/releases/tag/0.5.0

Deno by example

Deno Land Inc.によりDeno by exampleが公開されました。

このサイトではDenoの使用方法についてまとめられています。


denoland/ga

サーバサイドからGoogle Analyticsへ情報を送信するためのDenoモジュール

Deno.serveHttpのサポートに加えて、Oak向けのmiddlewareも提供されています


https://github.com/denoland/ga

deno-postgres v0.15.0

deno-postgres v0.15.0がリリースされました。

このリリースでは、名前付きパラメータUNIXドメインソケットのサポートが追加されています。


https://github.com/denodrivers/postgres/releases/tag/v0.15.0