Denoの直近の変更について
先週は特にDenoのリリースは行われていないため、直近でDenoのmain
ブランチにマージされている変更についていくつか紹介します。
deno task
- オブジェクト形式でのタスクの定義がサポート
deno.json
でのタスクの定義においてオブジェクト形式がサポートされています。(おそらくdeno task
における依存関係の定義のサポートに向けた対応と思われます)
{
"tasks": {
"test": {
"command": "deno test --allow-read=. --doc",
"description": "Run tests"
}
}
}
description
フィールドで指定した内容は、引数なしでdeno task
コマンドを実行した際のコメントとして表示されます:
$ deno task
Available tasks:
- test
// Run tests
deno test --allow-read=. --doc
このdescription
フィールドの追加に伴い、引数なしでdeno task
コマンドを実行した際のdeno.jsonc
で各タスクに記述されたコメントを認識してくれる機能が廃止されています:
{
"tasks": {
// このコメントは引数なしでdeno taskを実行した際に表示されません
"test": "deno test --allow-read=. --doc"
}
}
--unstable-detect-cjs
の安定化
--unstable-detect-cjs
が安定化されています。--unstable-detect-cjs
を指定しなくても、package.json
で"type": commonjs
が指定されていた場合に、拡張子が.js
や.ts
などのCommon JS形式のモジュールを読み込むことができます。
fetch()
のリクエストボディでのAsyncIterable<Uint8Array>
のサポート
fetch()
のリクエストボディに対するAsyncIterable<Uint8Array>
のサポートが再導入されています (この機能はDeno v1.46.0で一度導入され、Deno v1.46.2にてrevertされていました)
import { createReadStream } from "node:fs";
const stream = createReadStream("./data.txt");
const res = await fetch("http://localhost:8000/upload", {
method: "POST",
body: stream
});
deno jupyter
- Deno.jupyter.image()
が実装
Deno.jupyter.image()
という新規APIが実装されています。引数として.jpg
/.png
ファイルへのパス または それらのファイルの内容を格納したUint8Array
を指定することで、Jupyter Notebook上にその画像を表示することができるようです。
deno_std
のリリース
deno_std
がリリースされています (release-2024.11.13)
@std/assert@1.0.8
@std/assert@1.0.8がリリースされています。
assertEquals
の改善
assertEquals
でオブジェクト同士を比較する際に、プロトタイプチェーンをさかのぼってすべてのプロパティーが比較されるよう挙動が改善されています。
@std/expect@1.0.8
@std/expect@1.0.8がリリースされています。
expect.addSnapshotSerializer()
expect.addSnapshotSerializer()
が実装されています。
@std/ini@1.0.0-rc.5
@std/ini@1.0.0-rc.5がリリースされています。
@std/ini/parse
- parse()
の挙動の変更
parse()
が数値/null
/true
/false
などの値を文字列ではなく、JavaScriptの対応する型として返却するよう挙動が変更されています。
@std/http@1.0.10
@std/http@1.0.10がリリースされています。
@std/http/file-server
- ドットファイルの取り扱いの改善
serveDir()
でshowDotfiles: false
が指定された場合、ドットファイルが要求された際に404
エラーが返却されるよう修正されています。
Deno Advent Calendar 2024
Qiitaで今年のDenoのAdvent Calendarが公開されています: