Deno v2.2のリリースタイミングと直近の変更について
Deno公式のXアカウントで、Deno v2.2のリリースが来週に行われる予定であることが発表されています:
直近でDeno v2.2に導入予定と思われる機能がいくつかマージされているため、紹介します。
deno lint
のJavaScriptプラグインサポート
昨年の末頃から開発が進められていたdeno lint
のJavaScriptプラグインがmain
ブランチへマージされました。
まだリリースはされていませんが、canaryバージョンであれば試すことができます。
先程のDeno公式のXアカウントの投稿にも動画が掲載されていますが、プラグインを利用する際は、Deno.lint.Plugin
を実装したオブジェクトをdefault export
したファイルもしくはJSR/npmパッケージをdeno.json
のlint.plugins
で指定することで有効化することができます。
{
"lint": {
"plugins": [
// ローカルプラグイン
"./lint-plugin.ts",
// jsrで公開されているプラグインも指定できます
"jsr:@uki00a/deno-lint-plugin-extra-rules@0.1.0"
]
}
}
lint.plugins
でプラグインを設定しておくと、deno lint
の実行時に自動的に対象のプラグインも適用されます:
$ deno lint main.js
error[deno-lint-plugin-extra-rules/no-env-to-object]: `Deno.env.toObject()` requires full `--allow-env` permission.
--> /home/uki00a/ghq/github.com/uki00a/deno-sandbox/main.js:3:13
|
3 | const env = Deno.env.toObject();
| ^^^^^^^^^^^^^^^^^
= hint: Recommended to use `Deno.env.get()` or similar.
docs: https://docs.deno.com/lint/rules/deno-lint-plugin-extra-rules/no-env-to-object
Found 1 problem
Checked 1 file
node:sqlite
Denoにnode:sqlite
モジュールを実装するPRがmain
ブランチへマージされています:
インメモリーデータベース(:memory:
)を利用する場合を除いて、該当のデータベースファイルに対する読み込み(--allow-read
)と書き込み権限(--allow-write
)を与える必要があります:
import { join } from "node:path";
import { DatabaseSync } from "node:sqlite";
const denoDir = Deno.env.get("DENO_DIR");
const db = new DatabaseSync(join(denoDir, "check_cache_v2"));
const stmt = db.prepare("SELECT * FROM tsbuildinfo");
const rows = stmt.all();
for (const row of rows) {
console.info(row.specifier);
}
db.close();
deno outdated
で依存関係の対話的な更新がサポート
deno outdated
コマンドで依存関係を対話的に更新できるようにする機能が導入され、main
ブランチにマージされています:
--interactive
オプションを指定することで、各依存パッケージとアップデート先のバージョンなどが表示され、対話的に各パッケージをアップデートできるようです:
$ deno outdated --update --interactive
? Select which packages to update (<space> to select, ↑/↓/j/k to navigate, a to select all, i to invert selection, enter to accept, <Ctrl-c> to cancel)
❯ ○ jsr:@hono/hono 4.6.14 -> 4.7.0
○ npm:@nestjs/common 10.4.4 -> 10.4.15
○ npm:@nestjs/core 10.4.4 -> 10.4.15
○ jsr:@oak/oak 17.1.0 -> 17.1.4
typescript-runtime-type-benchmarks
にDenoが追加
typescript-runtime-type-benchmarks
という各種バリデーションライブラリ向けのベンチマークを掲載しているサイトにDenoによる測定結果が追加されています:
Hono v4.7.0
Hono v4.7.0がリリースされています。以下のモジュールが追加されているようです:
モジュール | 概要 |
---|---|
hono/proxy | 特定のエンドポイントをリバースプロキシーとして運用するためのヘルパー |
hono/language | 多言語対応向けのミドルウェア |
hono/jwk | JWKベースの認証ミドルウェア |
また、@hono/standard-validator
というStandard Schemaをベースとしたバリデーション機能を提供するミドルウェアが公開されています。