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 lspdeno taskオブジェクト形式のタスクの定義を認識できるよう改善されています。


deno compile --includeに関するバグ修正

Deno.FsFile#readなどのサポート

埋め込まれたファイルのDeno.FsFile#readなどでの読み込みが行えない問題が修正されています。


TypeScriptファイルを埋め込むとエラーが発生する問題が修正

TypeScriptファイルが埋め込まれた場合、実行可能ファイルの実行時にエラーが起きる問題も修正されています。


deno task - descriptionフィールドの取り扱いの改善

引数なしでdeno taskを実行した際に、descriptionに改行やANSIエスケープコードなどが含まれる説明が適切に表示されるよう改善されています。


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.jsontypeが定義されていない場合でも、.js.tsなどのモジュールをCommonJS形式として読み込めます。


CommonJSサポートの改善

CommonJS形式モジュールからdynamic importが使われている場合、package.jsonexports.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-keyiterableな値がJSXに出現した際に、key属性の指定を推奨するためのルール
no-dangerdangerouslySetInnerHTMLの使用を検出してくれるルール
jsx-props-no-spread-multi同一のスプレッド構文の二重使用を検出してくれるルール
jsx-no-children-propprops.childrenに対する誤った指定を検出してくれるルール
jsx-curly-bracesJSXにおける中括弧の指定方法に関して一貫した作法を提供するルール
jsx-void-dom-elements-no-children空要素に対するchildrenの指定を検出してくれるルール
jsx-boolean-valueboolean値のpropsに対して短縮記法の使用を推奨するためのルール
button-has-type<button>要素に対する誤ったtypeの指定を検出するルール
jsx-no-useless-fragment効果のないFragment(<>...</>)の使用を検出するルール
jsx-no-danger-with-childrendangerouslySetInnerHTMLchildrenの併用を検出するルール

まだドラフト状態ですが、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への移行が推奨されます。