Deno v1.39
Deno v1.39がリリースされました。
以下に内容をまとめたため、よろしければそちらを参照いただければと思います。
deno_std v0.209.0
deno_std v0.209.0がリリースされました。
非推奨モジュール・APIの削除
以下の非推奨化されていたモジュールやAPIが削除されています。
- std/fs/eol.ts:- EOLが- enumから文字列(- "\n" | "\r\n")に変更されています。
- std/async/deferred.tsが削除されています。(Deno v1.38から- Promise.withResolversがサポートされたため)
- std/bytes/concat.ts: スプレッド形式のシグネチャ(- concat(...buf: (Uint8Array | Uint8Array[])[]): Uint8Array)が削除されました。
- std/collections:- binary_heap.tsなどのデータ構造に関わるファイルが削除されています。- deno_std v0.207.0でstd/data_structuresが追加されていて、今回削除されたデータ構造はそちらから利用できます。
 
- deno_std v0.207.0で
- std/datetime/to_imf.tsが削除されました。(- Date#toUTCString()の使用が推奨されます。)
- std/http/server_sent_event.tsが削除されました。(std/http/server_sent_event_stream.tsの使用が推奨されます。)
既存モジュール・APIの非推奨化
- std/types.d.tsが非推奨化されました。- 今後はWeb Streams APIの使用が推奨されます。
- また、std/io/types.d.tsが追加されており、こちらはdeno_std v1までは維持されるようなので、もしstd/types.d.tsを利用したいケースではこちらの利用が推奨されます。
 
- std/log:- LogLevelsが- enumから通常のオブジェクトへ変更されています。(これに伴い、一部フィールドが非推奨化されています。)- これに合わせてLogLevel型が追加されており、v0.211.0でログレベルをnumber型として扱っていた箇所がLogLevelに変更される予定のようです。
 
- これに合わせて
- std/front_matter:- Formatが非推奨化されています。
std/webgpuが追加
Deno v1.39でのWebGPU APIの再導入に伴い、deno_stdにstd/webgpuモジュールが追加されています。
WebGPU APIに関連するユーティリティが提供されているようです。
std/netが追加
新規モジュールとしてstd/netが追加されています。
現在はgetAvailablePort()というシステムの空きポートを返してくれる機能のみが提供されています。
std/iniが追加
新規モジュールとしてstd/iniが追加されています。
INIファイルの解析やJavaScriptオブジェクトからの生成がサポートされています。
std/cli/prompt_secret.tsが追加
promptSecret()というAPIが提供されています。
window.promptと同様にユーザーに入力を求めることができますが、入力内容が*でマスキングされます。
import { promptSecret } from "https://deno.land/std@0.209.0/cli/prompt_secret.ts";
const password = promptSecret("> ");
assert(typeof password === "string");
std/assert/std/expect
assertIsError()とexpect().toThrow()で正規表現がサポートされています。
import { assertIsError } from "https://deno.land/std@0.209.0/assert/assert_is_error.ts";
assertIsError(new Error("foo"), Error, /^f..$/);
std/http/unstable_signed_cookie.tsが追加
Cookieの署名(signCookie)や検証(verifyCookie)などのためのAPIが提供されています。
import { signCookie } from "https://deno.land/std@0.209.0/http/unstable_signed_cookie.ts";
import { setCookie } from "https://deno.land/std@0.209.0/http/cookie.ts";
const headers = new Headers();
// ...
const value = await signCookie("value", key);
setCookie(headers, {
  name: "cookie-name",
  value,
});
assert(headers.has("Set-Cookie"));
その他の改善
- std/assert:- assertEqualsなどで長い文字列を持つオブジェクトどうしを比較する際に、diffが部分的に切り取られてしまう問題が修正されています。
- std/toml: 複数行文字列に含まれるCRLFがきちんと取り扱われるように改善されています。
Deno.Kv.watchのアナウンス
Deno.Kv.watchの解説がDeno公式で公開されています。
@deno/kvパッケージの解説
Node.jsなどからDeno KVに接続するための@deno/kvパッケージに関する解説記事がDeno公式で公開されています。
Deno KVのベンチマーク
Deno公式でDeno KVやCloudflare Workers KV, Upstash Redisなどのベンチマーク結果や比較などが公開されています。