Deno v1.40.4
Deno v1.40.4がリリースされています。
Deno.FsFile.lock(Sync)/unlock(Sync)
Deno.FsFileにlock(Sync)とunlock(Sync)メソッドが追加されています。
挙動については既存のDeno.flockなどと同様です。
ARM64ビルド
ARM64向けのビルドがサポートされています。
これに合わせてdeno-arm64も非推奨化されているようです。
- https://github.com/denoland/deno/pull/22298
- https://github.com/LukeChannings/deno-arm64/commit/d7419ea6472b89f56fc9f3ea5c9d370fbf7794c2
Symbol.metadata
Symbol.metadataが追加されています。
CLI
DENO_AUTH_TOKENS環境変数でIPアドレスの指定がサポートされています。- v1.40.3で
deno jupyterが動かなくなっていた問題が修正されています。(#22231) deno testコマンドで../がうまく認識されない問題が修正されています。--allow-sysに指定できる値としてcpus(--allow-sys=cpus)がサポートされていいます。node:osのcpus()などの使用を許可できます。
deno_std v0.215.0
deno_std v0.215.0がリリースされています。
破壊的変更
std/log/levels.ts
LogLevels.WARNINGが削除されています。(LogLevels.WARNへの移行が推奨されます)
std/path
std/path/glob.tsが削除されています。下記への移行が推奨されます。
また、std/path/separator.tsも削除されています。(std/path/constants.tsへの移行が推奨されます)
std/semver
以下のファイルが削除されています。
| 削除対象 | 移行先 |
|---|---|
std/semver/test_comparator.ts | std/semver/test_range.ts |
std/semver/try_parse_comparator.ts | std/semver/try_parse_range.ts |
std/semver/range_format.ts | std/semver/format_range.ts |
std/semver/sort.ts | Array#sort + std/semver/compare.ts |
非推奨化 (std/semver)
以下のAPIが非推奨化されています。
| 非推奨API | 移行先 |
|---|---|
ltr() | lessThan |
gtr() | greaterThan |
reverseSort() | versions.sort((a, b) => compare(b, a)) |
std/expect
expect.addEqualityTesters()が実装されています。
dax v0.39.0
dax v0.39.0がリリースされています。
daxがNode.jsからも利用できるようnpmレジストリに公開(dax-sh)されています。以下では作者のdsherret氏による解説が公開されています。
破壊的変更として、PathRefがPathにリネームされています。(PathRefは非推奨化)
また、$.requestでタイムアウトが発生した際にTimeoutErrorがthrowされるように挙動が変更されています。
esbuild_deno_loader v0.9.0
esbuild_deno_loader v0.9.0がリリースされています。
Deno v1.40で導入されたImport Mapsにおけるnpm:URLの取り扱いの改善がesbuild_deno_loaderにも導入されています。
また、jsr:URLのサポートが追加されています。"portable"ローダーと併用したい場合はlockfileの存在が必須のようです。
Slint v1.4.0
GUIツールキットであるSlintのv1.4.0がリリースされています。
このリリースにより、DenoからもSlintが利用できるようになったようです。
https://twitter.com/Linda_pp/status/1753339084343558365
Hono v4
Hono v4がリリースされています。
SSGのためのhono/ssgやhono/jsxをクライアントサイドで動かすためのhono/jsx/domなどが追加されています。
また、Hono+ViteベースのメタフレームワークであるHonoXが公開されています。
Oak v13.1.0
Oak v13.1.0がリリースされています。
このリリースではFetch APIとの相互運用性の改善を図るため、以下のようなAPIが追加されています。
serve()
Fetch APIのRequestオブジェクトとServeContextを引数として受け取りResponse | Promise<Response>を返却する関数を渡すと、Oakのミドルウェアを返却してくれます。
import { Application, serve } from "https://deno.land/x/oak@v13.1.0/mod.ts";
const app = new Application();
app.use(serve((req, ctx) => {
console.assert(req instanceof Request);
return new Response("OK");
}));
route()
Fetch APIのRequestオブジェクトとRouteContextを引数として受け取りResponse | Promise<Response>を返却する関数を渡すと、RouterMiddlewareを返却してくれます。
import { Application, route, Router } from "https://deno.land/x/oak@v13.1.0/mod.ts";
const app = new Application();
const router = new Router();
router.get("/users/:id", route((req, ctx) => {
console.assert(req instanceof Request);
return new Response("foo");
}));
ctx.request.source
ContextからFetch APIのRequestオブジェクトにアクセスできます。Node.jsでOakを利用する際はこのプロパティは未設定のようです。
ctx.response.with()
このAPIを使うとFetch APIのResponseオブジェクトを使ってレスポンスを返却できます。