Deno v1.37でリリースされそうな機能について

今週はDenoのリリースが行われていないため、おそらく次にリリースされるであろうDeno v1.37に入りそうな機能などについて紹介します。

Lockfile v3

deno.lockの新しいフォーマット(v3)が実装されています。

feat: lockfile v3 #20424

npm.specifierspackages.specifiersへ、npm.packagespackages.npmへ移動されています。

これはdeno:URLのサポートを想定した変更のようです。

TypeScript v5.2

Deno本体に搭載されたTypeScriptをv5.2にアップデートするPRがマージされています。

feat: TypeScript 5.2 #20425

ただし、usingやDecorator Metadataなどについてはv8側でサポートされるまでは使用できない状況のようです。

Import Attributes

DenoにImport Attributesを実装するPRがマージされています。

feat: support import attributes #20342

// static import
import data from "./data.json" with { type: "json" };

// dynamic import
const data2 = await import("./data2.json", { with: { type: "json" } });

Deno Deployでnpmパッケージがサポート

Deno Deployでnpmパッケージがサポートされました。Denoと同様に、npm:URL経由でnpmパッケージを読み込むことができます。

以下の公式ブログ記事では、ExpressやFastify, OpenAI APIなどの使用例が紹介されています。

Deno KVのオープンベータ版が公開

Deno KVのオープンベータ版がリリースされました。今後はDeno DeployでのDeno KVの利用のために、waitlistへの登録が不要になるようです。

以下の公式ブログ記事ではDeno.openKvでのリモート接続の方法やプライシングなどについて解説されています。

また、今後はDeno KVにS3へのバックアップ機能の実装などが検討されているようです。

fresh v1.4.3

fresh v1.4.3がリリースされています。

このリリースはバグ修正がメインです。

  • _500.tsxをレンダリングする際のみ_app.tsxstateが渡されない問題が修正されました。
  • routes/users/[id]/(_islands)のようにdynamic routesフォルダで(_islands)が併用できない問題が修正されました。
  • /にアクセスした際に、routes/(some-group)/index.tsxがレンダリングされない問題が修正されました。