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が公開されています: