Deno v1.38.1
Deno v1.38.1がリリースされました。
Node.js互換性の改善
require()
- .jsが見つからなければ- .jsonも探すように挙動が改善されました。
- BYONMが有効化された際に、scopedパッケージ(@foo/bar)が適切に解決されるように修正されました。
node:crypto
createPrivateKey()が実装されました。
node:child_process
spawnSync()でstdioオプションが適切に取り扱われるように改善されました。
これにより、execaパッケージが動くようになったようです。
node:util
toUSVString()が実装されました。
deno doc --lintの出力内容の改善
deno doc --lintを実行した際の出力内容が変更されました。
今までは、lintに成功した際はAPIドキュメントが表示されました。
このリリースでは、lintに成功した際はAPIドキュメントを表示せず、チェックされたファイル数を表示するように変更されています。
$ deno doc --lint bytes/copy.ts      
Checked 1 file
Deno.AtomicOperation#checkで指定できるキー数の増加
Deno.AtomicOperation#checkが最大で合計100個のキーまでチェックできるように改善されました。(今までは10個が最大値でした)
Promise.withResolvers()の型定義の改善
Promise.withResolvers()が返すresolve関数の引数がオプショナルから必須に変更されています。
deno_std v0.206.0
deno_std v0.206.0がリリースされました。
std/async/deferred.tsが非推奨化
Deno v1.38でPromise.withResolvers()が利用できるようになったため、deferred()が非推奨化されました。
std/encoding/binary.tsが削除
非推奨化されていたstd/encoding/binary.tsモジュールが削除されています。
std/path/glob.tsに関するAPIの移動
std/path/glob.tsで提供されていた以下のAPIが移動されています。
| API | 移動先 | 
|---|---|
| isGlob | std/path/is_glob.ts | 
| globToRegExp | std/path/normalize_glob.ts | 
| joinGlobs | std/path/join_globs.ts | 
std/http/server_sent_event_stream.tsが追加
新しいモジュールとしてstd/http/server_sent_event_stream.tsが追加されました。
import { ServerSentEventStream } from "https://deno.land/std@0.206.0/http/server_sent_event_stream.ts";
const ac = new AbortController();
const server = Deno.serve({ port: 3000, signal: ac.signal }, () => {
  const sse = ReadableStream.from([
    {
      id: "1",
      event: "foo",
      data: "hello",
    },
    {
      id: "2",
      event: "bar",
      data: "hi",
    },
    {
      id: "3",
      event: "close",
      data: "foo"
    },
  ]).pipeThrough(new ServerSentEventStream());
  return new Response(sse, {
    headers: { "Content-Type": "text/event-stream" }
  });
});
const eventSource = new EventSource("http://localhost:3000/");
eventSource.addEventListener("foo", (event) => console.info(event.data));
eventSource.addEventListener("bar", (event) => console.info(event.data));
eventSource.addEventListener("close", (event) => {
  eventSource.close();
  ac.abort();
});
std/textが追加
新しいモジュールとしてstd/textが追加されています。
指定されたワードの一覧の中から近似するワードを検出するためのclosestStringなどのAPIが提供されています。
std/testing/mock.ts: classのサポート
spy()がclass(コンストラクタ)をサポートしました。
std/msgpack/encode.ts: 巨大なオブジェクトの取り扱いが改善
encode()に巨大なオブジェクトを渡すとRangeErrorが発生する問題が修正されました。
denokv v0.2.0
denokv v0.2.0がリリースされました。
S3を利用したレプリケーションやPITRなどが実装されています。
以下のDenoの公式ブログ記事でDeno KVのセルフホスティングやレプリケーションなどについて解説されています。
HonoとDenoで社内ツールを作ってみた
Hono/esbuild/Twind/Alpine.jsなどを活用したアイキャッチ画像の生成ツールの開発に関して記事が公開されています。