Deno v1.32.4

Deno v1.32.4がリリースされました。

Deno v1.32.2以降、Freshが動かなくなっていた問題が解消されています。(#18572)

Node.js互換性

node:cryptoで以下のAPIが実装されています:


特定のnpmパッケージのバージョンを更新しようとすると、以下のエラーが起きる問題が解消されています。

Could not find npm package '<package>’ matching <version>. Try retrieving the latest npm package information by running with --reload

deno cache --reload npm:<package>を実行すると、依存している全npmパッケージが再インストールされる問題が解消されています。

KV

Deno.Kvの各メソッドで、キーに配列以外の値を渡せないように挙動が変更されました。

例えば、今まではkv.get("key")のような呼び方ができましたが、今後はkv.get(["key"])のように呼ぶ必要あります。

Cache API

プログラムの実行をまたいで同一のリクエストに対して複数回Cache.putを呼んだ際に、値がうまく上書きされなくなる問題が修正されています (#18649)

deno_std v0.183.0

deno_std v0.183.0がリリースされました。

std/encoding/varint/の削除

非推奨化されていたstd/encoding/varint/が削除されました。

deno_std v0.179.0std/encoding/varint.tsにTypeScriptベースのAPIが追加されているため、今後はこれらの使用が推奨されます。

std/csv

破壊的変更

CsvStreamCsvParseStreamへリネームされています。(CsvStreamはまだ削除はされていないものの、非推奨化されています)

この変更はJsonParseStream/JsonStringifyStreamを提供するstd/jsonとの一貫性の向上を目的としています。


parse()などのAPIの型定義が改善されています。

具体的には、以下のように型推論が効くように変更されています。

import { parse } from "https://deno.land/std@0.183.0/csv/parse.ts";

const records: Array<Record<"id" | "name", string>> = parse("1,a\n2,b", {
  columns: ["id", "name"],
});

std/http/etag.tsが追加

ETagを計算するためのcalculate()や、If-None-MatchヘッダーとリソースのETagを比較するためのifNoneMatch()などが提供されています。

std/datetime/is_leap - isUtcLeap()が追加

新しいAPIとしてisUtcLeap()が追加されています。

基本的には既存のisLeap()とほとんど同じですが、内部でgetUTCFullYear()が使われているのが異なります。

これによりisLeap()で起きうるタイムゾーンに関する問題を回避できるのがメリットのようです。

std/dotenv: load()envPath/examplePath/defaultsPathオプションにnullを渡せるように

load()のこれらのオプションにnullを渡した場合、それぞれのパスからの読み込みが無効化されます。

例えば、envPathオプションにnullを渡した場合、.envの読み込みが行われなくなります。

std/fs/moveの改善

move()の引数で指定したsrcdestが同一ディレクトリを指しており、かつoverwrite: trueが設定されている場合、対象ファイルが削除された上でNotFoundエラーが起きてしまう問題が解消されています。

std/bytes/bytes_list: BytesList.sliceの修正

BytesList.sliceがうまく動作していなかった問題が修正されています。(#3291)

std/encoding/ascii85の修正

encode()が 4バイトまたはその倍数のサイズのsubarrayを受け取った際に、誤った結果を返す問題が修正されています。

denoland/tic-tac-toe

Deno公式でDeno.KvFreshを活用したTic-Tac-Toeゲームが公開されています。

esm.sh v115

esm.sh v115がリリースされました。

新機能として?moduleパラメータがサポートされています。

これを指定することで、.wasmファイルをWebAssembly.Moduleオブジェクトとしてimportできるようです。

Danet v1.6.0/v1.7.0

DenoのWebフレームワークであるDanetv1.6.0/v1.7.0がリリースされています。

これらのリリースではFreshのサポートが追加されているようです。

Cicadaのソースが公開

以下のリポジトリでCicadaのソースコードが公開されています。

これに合わせて、ドキュメンテーションページも公開されています。