Deno v1.18.2
Deno v1.18.2がリリースされました。
Deno.getUid()
Deno.getUid()
が実装されました。
これを使うと、現在のユーザのIDを取得できます。(Windowsだとnull
が返されます)
const uid = Deno.getUid();
console.log(uid);
利用するには--allow-env
と--unstable
が必要です。
その他バグ修正
HOME
環境変数に相対パスが設定されていると、プロセスがクラッシュする問題が修正されました。- 拡張子なしで
import
しようとした際に、メディアタイプを元に拡張子を推論されるようになりました。 - クエリパラメータつきでローカルファイルを
import
するとプロセスがクラッシュする問題が修正されました。 SubtleCrypto.decrypt
でAES-GCMによる復号を行う際に、タグ長が128ビットでないとプロセスがパニックする問題が修正されましたdeno lsp
: リダイレクトが発生すると、X-Deno-Warning
ヘッダの内容が表示されなくなる問題が修正されました
https://github.com/denoland/deno/releases/tag/v1.18.2
deno_std v0.125.0
deno_std v0.125.0がリリースされました。
std/node
への機能追加などを中心に行われています。
全般
std/fs/copy
やstd/node
、std/os
などの--unstable
が必要なモジュールを--unstable
なしで使用した際に、型エラーではなく実行時エラーが発生するように修正されました。
node
- punycodeパッケージが実装されました
url.resolve()
が実装されましたchild_process.spawn()
などでAbortSignal
がサポートされましたfs.createWriteStream()
が実装されましたfs.copyFile()
で4引数の形式がサポートされました
https://github.com/denoland/deno_std/commit/3b43d075ea6977e10bb1d9bd58fbeacc721a114e
deno_std
へのdotenv
モジュールの追加について
dotenvモジュールをdeno_std
へ追加するPRが作成されています。
経緯については下記のissueで議論されていますが、好意的な反応が多く、次のリリースなどで追加される可能性がありそうです。
https://github.com/denoland/deno_std/pull/1877
Deno.Conn#setNoDelay
とDeno.Conn#setKeepAlive
の実装について
Deno.ConnにsetNoDelay
とsetKeepAlive
を実装するPRがマージされました。(denoland/deno#13103)
今のところ、下記のように使用することが想定されています。
Deno.Conn#setNoDelay(true)
を呼ぶとNagleアルゴリズムが無効化されます (TCP_NODELAY
が設定される)Deno.Conn#setKeepAlive(true)
を呼ぶとTCPキープアライブが有効化されます (SO_KEEPALIVE
が設定される)
この機能は次のDeno v1.19でリリースされる可能性がありそうです。
https://github.com/denoland/deno/pull/13103
Deno.run()
でのIPCサポートについて
Deno.run()
でIPCをサポートするPRが作成されています。(denoland/deno#13566)
今のところ、下記のような方法での使用が想定されているようです。
Deno.run()
でipc: true
を指定すると、Deno.Process.ipc
経由で子プロセスと通信できますconst c = Deno.run({ cmd, ipc: true }); await writeAll(c.ipc, new TextEncoder().encode("Hello")); // ... c.ipc.close();
子プロセス側からは、
Deno.ipc
経由で親プロセスと通信しますconst message = await readAll(Deno.ipc); // ...