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
オブジェクトを使ってレスポンスを返却できます。