Deno v1.19.2
Deno v1.19.2がリリースされました。
リモートスクリプトでのdeno.json(c)
の自動読み込みが無効化
Deno v1.18でdeno.json(c)
の自動読み込みがサポートされました。
このリリースでは、リモートスクリプト実行時のdeno.json(c)
の自動探索が無効化されています。
リモートスクリプトを実行する際に、ローカルのdeno.json(c)
が読まれてしまうことによる不整合を防止することが目的のようです。
Proposal: disable auto-discovery of config file for deno run
deno test
の実行時はデフォルトで--no-prompt
が有効化
Deno v1.19で--prompt
がデフォルトで有効化されました。
しかし、deno test
の実行時は--prompt
オプションの必要性が薄いため、このリリースで無効化されています。
その他の変更点
deno repl
でnull
が適切に表示されない問題が修正されました。- 非TTY環境で
console
を使用した際の色付けが無効化されない問題が修正されました。
https://github.com/denoland/deno/releases/tag/v1.19.2
deno_std v0.128.0
deno_std v0.128.0がリリースされました。
新機能
streams
モジュールにTextLineStream
が追加されています。
import { TextLineStream } from "https://deno.land/std@0.128.0/streams/delimiter.ts";
const file = await Deno.open("./path/to/file.txt");
const readable = file.readable
.pipeThrough(new TextDecoderStream())
.pipeThrough(new TextLineStream());
for await (const line of readable) {
console.log(line);
}
また、node/crypto
へのcrypto.webcrypto
の追加も実施されています。
その他の変更点
testing/asserts
:assertObjectMatch
でRegExp
/Map
/Set
が適切に取り扱われるように修正されました。dotenv
:dotenv/load.ts
で.env
が同期的に読み込まれるように修正されました。
https://github.com/denoland/deno_std/releases/tag/0.128.0
Deno.TcpConn
とDeno.UnixConn
の追加について
Deno.TcpConn
とDeno.UnixConn
という新しいクラスを追加するPRがマージされています。
feat: Add Deno.TcpConn class, change return type from Deno.connect (#13714) feat(net): add Deno.UnixConn interface (#13787)
これに合わせて、Deno.connect()
のシグネチャが変更されています:
transport: "tcp"
を指定した際の戻り値がDeno.Conn
からDeno.TcpConn
へ変更transport: "unix"
を指定した際の戻り値がDeno.Conn
からDeno.UnixConn
へ変更
また、元々Deno.Conn
に定義されていたsetNoDelay()
やsetKeepAlive()
などのメソッドもDeno.TcpConn
へ移動されています。
変更の背景としては、Deno.Conn
はUnixソケットへの接続時などにも利用されていましたが、そこにsetNoDelay
やsetKeepAlive
などのメソッドが存在するのは不自然というのが理由のようです。
これらの変更は次のマイナーリリースであるDeno v1.20に含まれる可能性が高そうです。
ネイティブHTTPサーバでのレスポンスの自動圧縮について
ネイティブHTTPサーバ(Deno.serveHttp()
)にレスポンスの自動的な圧縮をサポートするPRがマージされました。
feat(ext/http): auto-compression of fixed response bodies #13769
こちらも次のv1.20でリリースされる可能性がありそうです。
deno_stdでのGoスタイルAPIからStreams APIへの移行について
deno_std
でDeno.Reader/Writer
などのGoスタイルAPIからStreams APIへの移行が開始されています。
例) Buffer(std/io/buffer.ts)のStreams APIへの移行
この移行が完了すれば、現在deno_stdで提供されている多くの機能がStreams APIをベースとして利用できるようになりそうです。
現在の進捗については下記issueから確認できます。
FreshでIsland architectureがサポート
FreshでIsland architectureがサポートされました。
これに合わせて、ディレクトリ構成が変更されています:
pages/
ディレクトリがroutes/
にリネームされました (routes/
ディレクトリのコンポーネントは従来通りSSRされます)islands/
ディレクトリが追加され、このディレクトリ内のコンポーネントのみ個別にクライアント上でレンダリングされます。routes.gen.ts
がfresh.gen.ts
へリネームされました(fresh.gen.ts
はfresh manifest
コマンドで自動生成されます)
これに合わせて、useData()
フックや<Suspense>
などが削除されています(近い将来に再度実装される予定のようです)