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.38Promise.withResolvers()が利用できるようになったため、deferred()が非推奨化されました。

std/encoding/binary.tsが削除

非推奨化されていたstd/encoding/binary.tsモジュールが削除されています。

std/path/glob.tsに関するAPIの移動

std/path/glob.tsで提供されていた以下のAPIが移動されています。

API移動先
isGlobstd/path/is_glob.ts
globToRegExpstd/path/normalize_glob.ts
joinGlobsstd/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などを活用したアイキャッチ画像の生成ツールの開発に関して記事が公開されています。