Deno v2.1.2
Deno v2.1.2がリリースされています。
WASMモジュール
.wasmモジュールから提供される関数以外の要素の読み込みがサポートされています。
TypeScript
deno checkコマンドでJSDocの@importタグがサポート
.jsファイルにおける@importタグによる型チェックがサポートされています。
resolution-mode属性のサポート
TypeScriptのresolution-mode属性のサポートが追加されています。
deno fmt --check - .sqlファイルに対してエラーが発生する問題の修正
.sqlファイルに対してdeno fmt --checkを実行すると、常にエラーが発生する問題が修正されています。
deno init --npm
scopedパッケージのサポート
deno init --npmでscopedパッケージがサポートされています (例: deno init --npm @foo/barを実行すると、@foo/create-barパッケージが実行されます)
node_modulesのセットアップ
deno init --npmの実行時にnode_modulesが作成されるよう挙動が改善されています。
deno lsp
.wasmモジュールサポートの改善
import宣言の補完時に.wasmモジュールが候補として含まれるよう改善されています。
deno taskのオブジェクト形式のタスクがサポート
deno lspがdeno taskのオブジェクト形式のタスクの定義を認識できるよう改善されています。
deno compile --includeに関するバグ修正
Deno.FsFile#readなどのサポート
埋め込まれたファイルのDeno.FsFile#readなどでの読み込みが行えない問題が修正されています。
TypeScriptファイルを埋め込むとエラーが発生する問題が修正
TypeScriptファイルが埋め込まれた場合、実行可能ファイルの実行時にエラーが起きる問題も修正されています。
deno task - descriptionフィールドの取り扱いの改善
引数なしでdeno taskを実行した際に、descriptionに改行やANSIエスケープコードなどが含まれる説明が適切に表示されるよう改善されています。
- fix(task): handle multiline descriptions properly #27069
- fix(task): handle carriage return in task description #27099
- fix(task): strip ansi codes and control chars when printing tasks #27100
deno publish - bun:のサポート
bun:sqliteなどのBunの組み込みパッケージに依存したモジュールをdeno publishで公開できるよう改善されています。
deno info - ワークスペースサポートの改善
deno infoコマンドでワークスペースのメンバーを参照するbare specifierが適切に解決されるよう改善されています。
Deno API
OpenTelemetry
Deno.serve()とfetch()に対する計装が実施されています。
Deno.upgradeWebSocketのバグ修正
Deno.upgradeWebSocketを呼んだ後にRequest.bodyUsedを参照するとエラーが発生する問題が修正されています。
Deno.watchFsのバグ修正
対象ファイルが削除された際に、適切にremoveイベントが発火されなくなっていた問題が修正されています。
Web API
WebSocket#sendの挙動の変更
すでに切断されている状態でWebSocket#sendが呼ばれた際に、例外が発生しないよう挙動が修正されています。
ReadableStream.fromの型定義の改善
ReadableStream.fromの引数として文字列を渡せないよう型定義が改善されています。
Node.js互換性の改善
--unstable-detect-cjsの再導入
Deno v2.1.0で安定化された--unstable-detect-cjsが再導入されています。
このオプションを指定すると、package.jsonが存在しない場合 または package.jsonでtypeが定義されていない場合でも、.jsや.tsなどのモジュールをCommonJS形式として読み込めます。
CommonJSサポートの改善
CommonJS形式モジュールからdynamic importが使われている場合、package.jsonのexports.requireが常に読み込まれる問題が修正されています。
node:tls
connect()にsocketオプションを渡すとエラーが発生する問題が修正されています。
node:fs/promises
stat()とFileHandle#statが実装されています。
node:fs
stat()で引数に対するバリデーションが適切に行われるよう改善されています。
node:http
ServerResponse#hasHeaderにおいて、与えられたヘッダー名を正規化してからヘッダーの存在を確認するように挙動が改善されています。
node:timers
clearTimeout/clearIntervalの引数としてnumber型の値がサポートされています。
deno_stdのリリース
deno_stdでリリースが行われています:
@std/cli@1.0.7
@std/cli@1.0.7がリリースされています。
promptSelect()が実装
新規APIとしてpromptSelect()が実装されています。ユーザーに対して、指定された値の一覧からの選択を促すことができます。
@std/tar@0.1.4
@std/tar@0.1.4がリリースされています。
@std/tar/untar-stream
pax形式のアーカイブを展開できない問題が修正されています。
deno lintへのJSX関連のルールの追加について
直近でdeno_lintに対してJSX関連のルールの追加が実施されています:
| ルール | 説明 |
|---|---|
jsx-key | iterableな値がJSXに出現した際に、key属性の指定を推奨するためのルール |
no-danger | dangerouslySetInnerHTMLの使用を検出してくれるルール |
jsx-props-no-spread-multi | 同一のスプレッド構文の二重使用を検出してくれるルール |
jsx-no-children-prop | props.childrenに対する誤った指定を検出してくれるルール |
jsx-curly-braces | JSXにおける中括弧の指定方法に関して一貫した作法を提供するルール |
jsx-void-dom-elements-no-children | 空要素に対するchildrenの指定を検出してくれるルール |
jsx-boolean-value | boolean値のpropsに対して短縮記法の使用を推奨するためのルール |
button-has-type | <button>要素に対する誤ったtypeの指定を検出するルール |
jsx-no-useless-fragment | 効果のないFragment(<>...</>)の使用を検出するルール |
jsx-no-danger-with-children | dangerouslySetInnerHTMLとchildrenの併用を検出するルール |
まだドラフト状態ですが、Deno本体にdeno_lintをアップデートするPRが作成されており、今のところDeno v2.2.0でのリリースが検討されているようです:
Prisma v6
Prisma v6がリリースされています。
Deno v2との互換性の改善が実施されているようです。
SimpleWebAuthn v12
SimpleWebAuthn v12がリリースされています。
このリリースに伴い、JSRへパッケージが公開されています (@simplewebauthn)
deno.land/x/simplewebauthnについては今後サポートされないため、JSRへの移行が推奨されます。