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などのベンチマーク結果や比較などが公開されています。