Deno v1.28.0

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

以下に変更内容をまとめたため、よろしければ参照ください。

Deno v1.28.1

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

deno installコマンドでnpm:がサポートされています。

その他には、npmパッケージサポートに関する細かなバグ修正などが実施されています:

  • Conditional exportsで指定されたエントリポイントが型定義を持っていない場合にエラーが発生する問題が修正
  • npmパッケージにfoo.server.jsのようにベースネーム部分に.を含むファイルが存在する場合に、うまく読み込みができない問題が修正
  • あるnpmパッケージの依存関係のバージョンにdist tagが指定されていた際に、うまく取り扱われない問題が修正
  • scopedパッケージに対して@types/*パッケージの型定義が適切に適用されない問題が修正
  • --lock-writeを指定すると、deno.lockからnpmパッケージが消えてしまう問題が解消

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

deno_std v0.164.0

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

std/fmt: durationモジュールが追加

ミリ秒単位で指定された時間のフォーマットされた文字列を取得することができます。

import { prettyDuration } from "https://deno.land/std@0.165.0/fmt/duration.ts";

prettyDuration(130000, { ignoreZero: true, formatType: "full" }); // => "2 minutes, 10 seconds"

補足) prettyDurationは以下のPRでformatにリネームされています。この変更は、おそらくv0.166.0あたりでリリースされると思われるため、今後利用する際はprettyDurationではなくformatを使用するとよさそうです。

std/node: 互換性の向上

  • node/fs: - read()でコールバックが非同期に呼ばれるように修正
  • node/http: ServerResponse.finishedが実装
  • node/http: --unstableが指定されていると、Buffer形式のレスポンスが適切に取り扱われない問題が修正
  • node/string_decoder: StringDecoder.decodeのパフォーマンスが小さなUint8Arrayに対しては51倍、大きなUint8Arrayに対しては4倍程まで高速化

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

Support Astro

Denoのnpmパッケージサポートを活用して、Astroのサポートに向けた対応が進められているようです。

進捗については、下記のissueで確認できます。

npmパッケージサポートに関するチュートリアル

Denoのv1.28にリリースに合わせ、npmパッケージサポートに関するチュートリアルが公式で公開されています。