Deno v1.35
Deno v1.35がリリースされました。
以下に内容をまとめたため、よろしければそちらを参照いただければと思います。
deno_std v0.193.0
deno_std v0.193.0がリリースされました。
std/http/user_agent.ts
std/http
にユーザーエージェントを取り扱うためのユーティリティが追加されています。
import { UserAgent } from "https://deno.land/std@0.193.0/http/user_agent.ts";
const ua = new UserAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36");
console.info(ua.browser); // => { name: "Chrome", version: "114.0.0.0", major: "114" }
直近でリリースされたOak v12.6.0にも、このstd/http/user_agent.ts
を使用したUser-Agent
のサポートが入っています。
std/json/concatenated_json_parse_stream.ts
nullnull
のように、セパレータなしで連続してnull
やtrue
などの値が現れた際に、適切に処理が行われるように修正されました。
import { ConcatenatedJsonParseStream } from "https://deno.land/std@0.193.0/json/concatenated_json_parse_stream.ts";
const result = [];
for await (
const x of ReadableStream.from(["nullnull", "1"]).pipeThrough(
new ConcatenatedJsonParseStream(),
)
) {
result.push(x);
}
console.info(result); // => [ null, null, 1 ]
std/testing/asserts.ts
assertObjectMatchのactual
引数にnull
が値として含まれるオブジェクトを渡すと、AssertionError
ではなくTypeError
が発生してしまう問題が修正されています。
Deno Deployで静的に解析可能なdynamic importがサポート
以下のように、静的に解析可能なdynamic importがDeno Deployでサポートされたようです。
const { deferred } = await import("https://deno.land/std@0.193.0/async/deferred.ts");
以下のように、静的に解析ができないdynamic importについては動作しません。
let mod = "async/deferred.ts";
const { deferred } = await import(`https://deno.land/std@0.193.0/${mod}`);
https://deno.com/deploy/changelog#statically-analyzable-dynamic-imports
esm.sh v128
esm.sh v128がリリースされています。
esm.shをセルフホストするための公式Dockerイメージが公開されています。
HOSTING.mdで使用方法が解説されています。