Deno v2.1.5
Deno v2.1.5がリリースされています。
QUICサポート
QUICのサポートがリリースされました。
Deno.connectQuic()
などのAPIが実装されています (利用するには--unstable-net
の指定が必要です)
deno lint
- JavaScriptプラグイン向けの内部的な基盤の追加
deno lint
におけるプラグインシステムの内部APIであるDeno[Deno.internal].runLintPlugin
やセレクターの仕組みなどの実装がリリースされています。
deno.json
におけるlint.plugins
オプションの実装はリリースされていないため、まだ一般的な利用はできない状態です。
OpenTelemetry
@deno/otel
の不要化
OpenTelemetryサポートを利用するに当たり、@deno/otel
の使用が不要化されています。
OTEL_DENO=true
と--unstable-otel
さえ指定されていれば@opentelemetry/api
との連携ができます。DenoがあらかじめglobalThis[Symbol.for("opentelemetry.js.api.1")]
にTracerProvider
などを登録してくれるため、@opentelemetry/api
との連携が自動で行われるようです。
まだ、Denoの公式ドキュメントにもOpenTelemetryサポートに関するドキュメントが追加されています (Add docs for OpenTelemetry in Deno (denoland/docs#1305))
- feat(unstable): add OTEL MeterProvider #27240
- feat(unstable): replace SpanExporter with TracerProvider #27473
- feat(unstable): no config npm:@opentelemetry/api integration #27541
WASMモジュール
jsrパッケージにおけるサポートの改善
jsrパッケージ内に含まれる.wasm
モジュールが読み込めるよう改善されています。
deno check
モジュールが見つからなかった際のエラー形式の変更
モジュールが見つからなかった際のエラーメッセージがTypeScriptのdiagnosticsとして報告されるよう改善が行われています (#27533)
# Deno v2.1.5
$ deno check main.ts
Check file:///home/uki00a/ghq/github.com/uki00a/deno-sample/main.ts
error: TS2307 [ERROR]: Cannot find module 'file:///home/uki00a/ghq/github.com/uki00a/deno-sample/add.ts'.
at file:///home/uki00a/ghq/github.com/uki00a/deno-sample/main.ts:1:21
# Deno v2.1.4
$ deno check main.ts
error: Module not found "file:///home/uki00a/ghq/github.com/uki00a/deno-sample/add.ts".
at file:///home/uki00a/ghq/github.com/uki00a/deno-sample/main.ts:1:2
deno lsp
CSSプリプロセッサー形式のフォーマットがサポート
deno lsp
でSassやLessなどのフォーマットがサポートされています (#27526)
.sql
ファイルや各種コンポーネント形式のフォーマットがサポート
deno lsp
で.sql
ファイルや各種コンポーネントファイル(.vue
/.svelte
など)のフォーマットがサポートされています (#27350)
Auto importの改善
Node.jsの組み込みモジュールから提供されるAPIに対してimport
宣言を自動挿入する際に、node:
プレフィックス付きで挿入されるよう改善されています (#27404)
typescript.suggestionActions.enabled
がサポート
deno lsp
でtypescript.suggestionActions.enabled
がサポートされています (#27373)
false
を設定すると、非推奨APIの使用や未使用変数に対する警告を除いて、TypeScriptからの各種提案を無効化できるようです。
Move to a new file
アクション
Move to a new file
アクションを実行すると、jsr:
がhttps:
に変換されてしまう問題が修正されています (#27427)
deno outdated
外部Import mapsのサポート
deno outdated
コマンドでdeno.json
のimportMap
で指定された依存関係を--update
オプションによって更新できない問題が修正されています (#27339)
deno task
依存関係を持つタスクにおけるcommand
の省略
deno.json
で依存関係を持つタスクを定義する際に、command
の指定を省略できるように改善されています (#27191)
{
"tasks": {
"check": {
"dependencies": ["typecheck", "lint"]
},
"typecheck": "deno check mod.ts",
"lint": "deno lint && deno fmt --check"
}
}
--recursive
の挙動の修正
deno task
で--recursive
が指定された際に、パターンに*
が含まれる場合だけ正規表現によるマッチングが行われるよう挙動が修正されています (#27396)
今まではパターンに*
が含まれない場合も常に正規表現によるマッチングが行われていたようです。
--allow-import
--cached-only
が指定された際の挙動の変更
--cached-only
オプションが指定された際は--allow-import
の指定が不要となるよう改善されています (#27530)
deno.lock
外部Import mapsのサポート
deno.json
のimportMap
で指定されたImport mapsファイルの依存もdeno.lock
で追跡されるように改善されています (#27337)
Deno API
Deno.stat()
の修正
Deno.stat()
においてTypeError: Cannot convert a BigInt value to a number
エラーが発生することがある問題が修正されています (#27453)
macにおけるDeno.systemMemory()
の挙動の修正
macにおいて、Deno.systemMemory()
が返却するavailable
とfree
の値がKB単位で返されてしまっていた問題が修正されています (#27460)
Web API
DOMException
に[[ErrorData]]
が追加
DOMException
に[[ErrorData]]
内部スロットが追加されています (#27342)
今後のError.isError
のサポートに向けた対応のようです。
また、node:util
のtypes.isNativeError
にDOMException
を渡すとtrue
が返却されるよう挙動が修正されています。
WebSocket#close
の修正
WebSocket#close
でreason
引数が省略された場合、code
引数が無視されてしまっていた問題が修正されています (#27578)
Node.js互換性の改善
node:fs
- access()
の修正
Windowsでaccess()
にconstants.X_OK
を渡すと、常にエラーが発生する問題が修正されています (#27407)
node:fs/promises
- FileHandle
へのメソッドの追加
FileHandle
にtruncate()
(#27389)とchmod()
(#27522)が実装されています。
node:os
- Linuxにおけるcpus()
の改善
Linuxにおいてcpus()
の返却結果にspeed
が設定されるよう改善されています (#27592)
node:worker_threads
- 安定性の改善
実行途中の非同期処理が存在する場合にワーカーが停止してしまわないよう改善されています (#27378)
node:crypto
秘密鍵のJWK形式でのエクスポート
generateKeyPair()
などのAPIで秘密鍵をJWK形式でエクスポートできるよう改善されています (#27325)
aes-128-gcm
/aes-256-gcm
aes-128-gcm
及びaes-256-gcm
で12バイト以外の長さのIVを指定できるように改善されています (#27476)
getCiphers()
getCiphers()
でまだサポートされていないアルゴリズムが返却されてしまわないよう挙動が修正されています (#27466)
node:http
- request()
のcreateConnection
オプションがサポート
request()
でcreateConnection
オプションがサポートされています (#25470)
node:inspector/promises
のimport
がサポート
node:inspector/promises
がimport
出来なかった問題が修正されています (#27491)
エスケープ文字を含むCommonJSモジュールの取り扱いの改善
エスケープ文字を含む要素をexport
したcjsモジュールを読み込むとエラーが発生する問題が修正されています (#27438)
パフォーマンス改善
WindowsにおいてDeno.stat
のパフォーマンスが改善されています (#27487)
今までは内部的にファイルが2回開かれていたようなのですが、1回のみに抑えることでパフォーマンスがおよそ2倍以上にまで改善されているようです。
また、node:fs
のcp()
のパフォーマンスも改善されています (#27495)
WinterTC
WinterTCが発表されました:
これまでWinterCGというW3Cのコミュニティグループで各種サーバーサイドランタイムにおける相互運用性の改善に関して活動が行われていました。
WinterCGにおいて議論されていたminimum common APIに関する標準化などのために、Ecma InternationalにおいてWinterTC (TC55)というグループが立ち上げられるようです。
WinterTCのGitHub Organizationについては引き続き/wintercgが使用されているようです:
deno_std
のリリース
deno_std
がリリースされています (release-2025.01.10)
@std/fs@1.0.9
@std/fs@1.0.9がリリースされています。
lstatSync
/statSync
が追加
新規APIとしてlstatSync()
(@std/fs/unstable-lstat
)とstatSync()
(@std/fs/unstable-stat
)が追加されています。
また、各種unstableモジュールから使われる型を管理している@std/fs/unstable-types
が公開されています。
@std/data-structures@1.0.6
@std/data-structures@1.0.6がリリースされています。
RedBlackTree.from()
の修正
既存のRedBlackTree
から新しいRedBlackTree
を作成する際に、誤ったサイズが設定されてしまう問題が修正されています。
@std/fmt@1.0.4
@std/fmt@1.0.4がリリースされています。
@std/fmt/duration
- format()
の修正
format()
でstyle: "full"
が指定された際に単位が誤って複数形で表示される(例: 1 minutes
)問題が修正されています。
wasmbuild v0.18.0
wasmbuild v0.18.0がリリースされています。
Deno v2.1で導入された.wasm
モジュールを使用するよう変更が行われています。