Deno v1.34.2
Deno v1.34.2がリリースされました。
Node.js互換性
node:http2
が追加されました。http2.connect
とhttp2.createServer
の基本的な実装が追加されています。
node:fs/promises
:FileHandle
の以下のメソッドが実装されました。readFile()
read()
write()
close()
node:child_process
:spawn
のstdioオプション
で[0, 1, 2]
の指定がサポートされました。node:process
:process.stdout
にpipeされたReadable
ストリームがクローズされた際に、process.stdout
も一緒にクローズされてしまう問題が修正されています。
Web API
- 巨大な
ArrayBuffer
をconsole.log
などで表示しようとした際に、誤ってdetached状態として表示される問題が修正されました。 EventTarget
のリスナ内で同一イベントへのリスナを新しく登録した際に、登録されたばかりのリスナが即座に呼ばれてしまう問題が修正されました。
パフォーマンス改善
主にHTTPサーバ(Deno.serve
)に対して、様々なパフォーマンス改善が実施されています。
- perf: use sendto syscalls #19414
- perf(ext/http): Add a sync phase to http serving #19321
- perf(ext/http): Use flat list of headers for multiple set/get methods #19336
- perf(ext/http): Migrate op_http_get_request_headers to v8::Array #19354
- perf(ext/http): Migrate op_http_get_request_method_and_url to v8::Array #19355
- perf: optimize RegExp usage in JS #19364
- perf(http): avoid flattening http headers #19384
deno_std v0.191.0
deno_std v0.191.0がリリースされました。
std/{csv,http,path}
: 非推奨化されたファイル・APIの削除
- std/csv/stream.tsが削除されました (今後はstd/csv/csv_parse_stream.tsの使用が推奨されます)
std/http/util.ts
のcompareEtagが削除されました (今後はstd/http/etag.tsの使用が推奨されます)std/path/mod.ts
のsepが削除されました (今後はSEPの使用が推奨されます)
std/html
が追加
新しいモジュールとしてstd/htmlが追加されました。
HTMLエンティティのエスケープ・アンエスケープを行うための機能が提供されているようです。
std/async/retry.ts
retry()にjitter
オプションが追加されました。(デフォルトは1
)
0
を指定するとjitterを無効化できます。
std/collections
std/collections
の各APIが配列だけでなくIterable<T>
を引数として受け取るように改善されました。- sortBy()に
options
引数が追加されました。order
オプション("asc" | "desc"
)によってソート時の並び順を指定できます。(デフォルトはasc
)
std/crypto
crypto.digest
でBLAKE2B-224
がサポートされました。
std/toml/stringify.ts
stringify()
で以下のバグが修正されています。
- オブジェクトのキーに空文字列があった際に、不正なTOMLが出力される
- 値に空のオブジェクトが含まれていた際に、適切にTOMLが出力されない
- インラインオブジェクトのキーに
/
などの特殊なキーがあると、適切にTOMLが出力がされない
Deno.listenDatagram
の安定化について
Deno.listenDatagram
を安定化するためのPRが作成されています。
この変更は、Deno v1.35でのリリースが検討されているようです。
今のところUDPソケット(transport: "udp"
)のみが安定化される予定のようで、Unixドメインソケット(transport: "unixpacket"
)についてはこの変更では安定化されない予定のようです。
denoland/publish-folder
まだ開発中のため使用は推奨されないようですが、deno.land/xへ特定のディレクトリを公開するためのGitHubアクションが公開されています。
esm.sh v125
esm.sh v125がリリースされました。
Deno v1.33.2以上のバージョンが使用されている際は、?target=denonext
が自動で適用されるように変更されたようです。
https://twitter.com/jexia_/status/1666370421720219648
deno_tui v2
DenoのTUIライブラリであるdeno_tuiのv2がリリースされています。
主な変更点:
- 各コンポーネント名から
Component
サフィックスが削除 (例:ButtonComponent
->Button
) - リアクティブにUIを更新するために、SignalやComputedなどが導入
- パフォーマンスの改善
など