Deno v2.9.5
Deno v2.9.5がリリースされています。
QuickJSバックエンド
QuickJSバックエンドの実験的実装が追加されています (#36194)
deno compile及びdeno desktopコマンドに--engineオプションが追加されており、--engine=quickjsを指定すると、DenoがQuickJSランタイムを自動でダウンロードした上で、そのQuickJSランタイムをベースに実行可能ファイルを生成してくれます。
$ deno compile --engine quickjs main.js
公式ドキュメントも公開されています。
deno add
--unscopedオプションが追加されています (#36319)。スコープ付きパッケージをインストールする際にこのオプションを指定すると、deno.jsonにはスコープを取り除いた状態でそのパッケージに関するマッピングが追加されます。
$ deno add --unscoped jsr:@david/dax
$ cat deno.json | jq .imports.dax
"jsr:@david/dax@^0.49.0"
deno task
--membersオプションが追加されています (#35748)。ワークスペースの各メンバーにおける指定したタスクを一括で実行することができます。--recursiveや--filterオプションとの違いとして、ワークスペースルートのタスクの実行はスキップされます。
deno fmt
deno fmt -においてXMLとSVGのフォーマットがサポートされています (#36149)。--extオプションにxmlまたはsvgを指定できます。
$ cat file.xml | deno fmt --ext=xml -
Web API
textStream()
Response#textStream()/Request#textStream()/Blob#textStream()が実装されています (#35616)
const stream = (await fetch(import.meta.url)).textStream();
assert(stream instanceof ReadableStream);
let content = "";
for await (const x of stream) {
assert(typeof x === "string");
content += x;
}
console.info(content);
Node.js互換性の改善
node:test
describe()やit()などに対するtagsの指定がサポートされています (#36292)
node:v8
promiseHooks APIが実装されています (#36281)
node:util
diff()が実装されています (#36289)
node:fs
writeFile()/appendFile()/createWriteStream()のflushオプションがサポートされています (#36290)
セキュリティ
fetch()
リダイレクトが発生した際に、リダイレクト元とリダイレクト先のOriginが異なる場合、リダイレクト先へのリクエストに対してAuthorizationやCookieなどのヘッダーが送信されないように挙動が修正されています (#36361)
node:dns
getServers()が--allow-sys=networkInterfacesを要求するように挙動が変更されています (#35941)
node:process
constrainedMemory()がsys=systemMemoryInfoパーミッションを要求するように挙動が変更されています (#36218)