Deno Deploy EA におけるデータベースのサポートについて

Deno Deploy EAアプリケーションからのPostgreSQLへの接続サポートが追加されているようです:

あらかじめ Deno Deploy のダッシュボードから登録しておいたデータベースを Deno Deploy アプリケーションに割り当てることが出来るようです。

Deno Deploy は本番やプレビューなどの各環境ごとに自動でデータベースを作成し、各環境のアプリケーションに対してPGHOST/PGPORT/PGDATABASEなどの環境変数を自動で割り当ててくれるため、特に設定をせずともnode-postgresなどのパッケージによって適切なデータベースへ接続が出来る仕組みのようです。

現時点ではPostgreSQLのみがサポートされており、今後、MySQLやMongoDB, Redisなどのサポートも検討されているようです (Supported Database Engines)

Fresh v2 に関する直近でのアップデート

まだFresh v2は正式リリースされたわけではないですが、直近でいくつか大きな変更が実施されているため、紹介します。

Tailwind CSS v4のサポート

@fresh/plugin-tailwind@0.0.1-alpha.8がリリースされています。このリリースではTailwind CSS v4がサポートされています (#3054)

@fresh/plugin-tailwind-v3というパッケージも追加されており、Tailwind CSS v3についてはこのパッケージからサポートが提供されます (#3135)

公式ミドルウェアの拡充

CORS (#3013) や CSRF (#3018) 向けのミドルウェアがFreshの公式リポジトリに追加されています。これらは@fresh/coreパッケージから提供されています。

ユーザーコードをimportせずにビルドできるようにする変更

今まで、ビルドを実行する際にユーザーコードをimportしていた関係で、一部のケースにおいてFreshのビルドが終了しなくなってしまう問題の修正が行われています (#3122)

この変更の影響として、ファイルベースの Route の登録方法が変更されています。ファイルベースの Route を有効化したい場合、fsRoutes()ではなくApp#fsRoutesを実行する必要があるようです。(ファイルベースの RouteBuilderによって処理されるよう挙動が変更されているようです)

この変更によって、deno.comにおけるDeno Deployアプリケーションのコールドスタートが30%程高速化されたようです。

今回の変更にあわせて、本番サーバーの起動コマンドがdeno runからdeno serveへ変更されているようです。

コミットメッセージによると、将来的にはViteへの移行も考慮に入れられているようで、今回の変更はそれに向けた意味合いもあるようです。

deno_stdのリリース

deno_stdのリリースが実施されています (release-2025.07.22)

@std/cli@1.0.21

@std/cli@1.0.21がリリースされています。

@std/cli/unstable-prompt-select@std/cli/unstable-prompt-multiple-selectの改善

選択肢のラベルと値の分離がサポート

promptSelect() (@std/cli/unstable-prompt-select) とpromptMultipleSelect() (@std/cli/unstable-prompt-multiple-select) において、選択肢のラベルと選択された際に返却される値を分離できるようにする改善が実施されています (#6742)

import { promptSelect } from "jsr:@std/cli@1.0.21/unstable-prompt-select";

interface User {
  id: number;
  name: string;
}
const user = promptSelect<User>("Please select a user", [
  { label: "foo", value: { id: 1, name: "foo" } },
  { label: "bar", value: { id: 2, name: "bar" } },
  { label: "baz", value: { id: 3, name: "baz" } },
]);
選択肢の絞り込みがサポート

promptSelect() (@std/cli/unstable-prompt-select) と promptMultipleSelect() (@std/cli/unstable-prompt-multiple-select) で選択肢の絞り込みがサポートされています (#6741)

選択を促している際にユーザーがキー入力を行うと、入力された値にマッチする選択肢が自動で絞り込まれます。

promptMultipleSelect() - visibleLinesオプションとindicatorオプションが追加

visibleLinesオプションは画面に表示される最大行数を指定したい場合に使用でき、indicatorオプション (デフォルト: ) では現在の要素に対して表示されるマークをカスタマイズすることが出来ます (#6699)

@std/cli/unstable-progress-bar - fmtオプションのリネーム

ProgressBarfmtオプションがformatterへリネームされています (#6707)

@std/cli/unstable-ansiが追加

このモジュールではANSIエスケープシーケンスに関する定数やユーティリティーなどが提供されています (#6756)

@std/testing@1.0.15

@std/testing@1.0.15がリリースされています。

@std/testing/unstable-stub-propertyが追加

このモジュールではstubProperty()が提供されます (#6761)

置き換え対象のプロパティーに設定されていた Property Descriptor を可能な限り維持しつつプロパティを置き換えてくれるのが特徴のようです。戻り値としてSymbol.disposeを実装したオブジェクトを返却してくれるため、usingと併用することでプロパティーを置き換える前の状態へ復元することが可能です。

@std/data-structures@1.0.9

@std/data-structures@1.0.9がリリースされています。

@std/data-structures/unstable-2d-arrayが追加

このモジュールでは二次元配列を表現するD2Arrayが提供されています (#6754)