What we got wrong about HTTP imports
DenoにおいてHTTPインポートが実装された背景やそのトレードオフ、JSRが開発された背景などについて解説された記事がDenoの公式ブログで公開されています。
HTTPインポートについては今後も削除される予定はないものの、ある程度の規模のプロジェクトにおいてはImport MapsとJSRを併用することが推奨されています。
また、この記事によると、Deno v2のリリースは今年の9月に実施されることが検討されているようです。
node:sqlite
のサポートについて
Node.jsで最近実装されたnode:sqlite
のサポートに関するissueがlittledivy氏によって作成されています。
現在はクローズされていますが、過去にDeno本体にSQLiteドライバーを追加するPRが作成されていたことがあったので、もしかしたらDenoでnode:sqlite
が実装される可能性もありそうな気はします。
Deno v1.45.5
Deno v1.45.5がリリースされています。
Node.js互換性の改善
package.json
imports
のワイルドカードが認識されるように改善されています。
node:child_process
IPC(fork
)の再実装:
以下のような点などが改善されているようです:
TypedArray
をやり取りができない問題が解消- IPCチャネルを作成すると、イベントループが停止しなくなる問題が解消
null
を渡そうとすると、チャネルが終了してしまう問題が解消
この改善により、--pool=fork
を指定した際もvitest
が動作するようです。(これはvitest v2のデフォルトの挙動のようです)
--v8-options
:
各種APIによってDenoを子プロセスとして実行する際に、Node.jsの--v8-options
がDenoの--v8-flags=--help
として解釈されるように挙動が修正されています。これにより、Denoでv8flagsが動作するようです。
node:fs/promises
watch()
がNode.jsと同様にAsyncIterable
を返却するように修正されています。
node:timers/promises
scheduler.{wait,yield}
が実装されています。
Web API
GPUOutOfMemoryError
が発生すると、プロセスがクラッシュしてしまう問題が修正されています。
Response#clone
のパフォーマンスが改善されています(perf(ext/fetch): speed up resp.clone()
(#24812))
deno compile
BYONMが有効化されている場合、カレントディレクトリ直下にないファイルをdeno compile
しようとすると、生成されたバイナリーの実行時にプロセスがパニックしてしまう問題が修正されています。
deno_stdのリリース
deno_stdがリリースされています。
@std/testing@1.0.0
@std/testing@1.0.0がリリースされています。
このリリースに合わせて、FakeTime
からthrow
される例外がTimeError
からRangeError
とTypeError
へ変更されています。
@std/http@1.0.0
@std/http@1.0.0がリリースされています。
このリリースに合わせて、eTag()
のシグネチャーの改善とETagSource
型の削除が行われています。
@std/semver@1.0.0
@std/semver@1.0.0がリリースされています。
このリリースに合わせて、以下のAPIの振る舞いが微調整されています。
format()
-NaN
やInfinity
などの不正な値を持つSemVer
オブジェクトの取り扱いが変更されています (#5587)tryParse()
- 引数がoptionalから必須に変更されていますcanParse()
- 例外をthrow
しないように修正されていますparseRange()
- 不正な値が渡された際に
TypeError
がthrow
されるように改善されています operator
とversion
の間にスペースがあった際の振る舞いが改善されています
- 不正な値が渡された際に
@std/fmt@1.0.0
@std/fmt@1.0.0がリリースされています。
このリリースに合わせて、PrettyDurationOptions
がFormatOptions
へリネームされています。
@std/net@1.0.0
@std/net@1.0.0がリリースされています。
@std/csv@1.0.0-rc.6
@std/csv@1.0.0-rc.6がリリースされています。
CsvParseStream
でfieldsPerRecord
オプションがきちんと動作するように改善されています。
また、エラーメッセージにおいて、該当の行や列が0ベースではなく1をベースに表示されるように改善されています。
@std/url@1.0.0-rc.3
@std/url@1.0.0-rc.3がリリースされています。
このリリースに合わせて@std/url
は非推奨化されており、今後は@std/path/posixの使用が推奨されるようです。
@std/html@1.0.1
@std/html@1.0.1がリリースされています。
実験的なAPIとしてisValidCustomElementName
(@std/html/is-valid-custom-element-name
)が追加されています。指定された名前がカスタムエレメントの名前として妥当かどうかを検証してくれます。
@std/ini@1.0.0-rc.3
@std/ini@1.0.0-rc.3がリリースされています。
破壊的変更として、FormattingOptions
がprivate APIに変更されています。また、stringify()
からcommentChar
とdeduplicate
, assignment
オプションが削除されています。
それ以外にはparse()
に型パラメータが追加されており、ダブルクォートで囲まれた値がきちんと取り扱われるようにする改善も行われています。
codesign for deno compile binaries
deno compile
で生成されたバイナリーをcodesignなどによって署名できるようにする対応がマージされています。
おそらく、Deno v1.46あたりで入る可能性がありそうです。