Deno v1.20.5
Deno v1.20.5がリリースされました。
deno lsp
の新機能
deno lsp
でTesting APIがサポートされています (https://code.visualstudio.com/api/extension-guides/testing)
vscodeでTesting: Focus on Test Explorer View
コマンドを実行すると、テストファイルに含まれるテストケースの一覧を表示できます。
Deno.Listener
にref
とunref
メソッドが追加 (unstable)
unref()
が呼ばれたListener
はプロセスの終了をブロックしなくなります (タイマにDeno.unrefTimer
を呼んだときと同様の挙動をします)
後述するdeno_std/node/net
でのServer.ref()
の実装で利用されています。
バグ修正
SubtleCrypto.exportKey()
でextractable: false
に設定されたキーをエクスポートできてしまう問題が修正されました (https://github.com/denoland/deno/issues/14215)--compat
を指定してdeno install
を実行した際に、--compat
フラグが維持されない問題が修正されました。
https://github.com/denoland/deno/releases/tag/v1.20.5
deno_std v0.134.0
deno_std v0.134.0がリリースされました。
encoding/csv
やnode
モジュールへの機能の追加が行われています。
encoding/csv
CSVStream
が追加されました。
import { CSVStream } from "https://deno.land/std@0.134.0/encoding/csv/stream.ts";
const file = await Deno.open("path/to/data.csv");
const stream = file.readable
.pipeThrough(new TextDecoderStream())
.pipeThrough(new CSVStream());
for await (const record of stream) {
console.log(record);
}
node
child_process
:ChildProcess.kill()
でsignal
パラメータがサポートされました。net
:Server.ref()
やServer.unref()
がサポートされました。fs
:fs.write()
などで同じデータが重複して書き込まれてしまうことのある問題が修正されました。
https://github.com/denoland/deno_std/releases/tag/0.134.0
Ultra v0.8.0
ReactベースのフレームワークであるUltraのv0.8.0がリリースされました。
React v18のサポート
React v18がサポートされています。
また、disableStreaming
環境変数に1
を設定することで、SSR実行時のストリーミングを無効化できるようになっています。
APIルートのサポート
src/api
ディレクトリ配下でRequest
を受け取りResponse
またはPromise<Response>
を返却する関数をdefault export
することで、APIを定義することができます。
deno.json
との統合
deno.json
がサポートされました。
deno.json
でのimportMap
の指定が必須になっているため、注意が必要そうです。
サードパーティモジュールのベンダリング
ultra/vendor.tsによって依存しているサードパーティモジュールをローカルに保存できるようになりました。
このスクリプトを実行すると、.ultra/vendor
ディレクトリへサードパーティモジュールが書き込まれます。
書き込まれたサードパーティモジュールはvendorMap.json
経由で読み込むことができます。
Oakとの互換性について
Oakとの互換性を維持するために、ultra/mod.tsでultraHandler
が公開されました。
https://github.com/exhibitionist-digital/ultra/releases/tag/v0.8.0
Postgres.js
DenoとNode.jsの両方をサポートするPostgreSQLクライアント