Deno v1.33.2

Deno v1.33.2がリリースされました。

Deno KV

Deno.KvU64valueOf/toStringが実装されました。

assert(new Deno.KvU64(1n) + 2n === 3n);
assert(new Deno.KvU64(123n).toString() === "123");

また、Deno.Kvのコンストラクタを直接呼ぶと、エラーが発生するように変更されました。(Deno.openKvの使用が推奨されるため)

Node.js互換性

  • node:process: process.releaseが実装されました。
  • node:http: ClientRequest.setTimeoutに0を渡すとタイムアウトが無効化されるように修正されました。

その他

  • パフォーマンス向上のため、Windows以外の環境では、グローバルアロケータやArrayBufferの割り当ての用途としてjemallocが使用されるように変更されました。
  • beforeunloadのリスナ内でpreventDefaultを呼んでいると、Deno.test内で発生したUncaught Errorが画面に表示されなくなる問題が修正されました。
  • WebSocketクライアントが適切にクローズされなかった場合、WebSocketサーバがハングする問題が修正されました。
  • 引数なしでURL.canParse()が呼ばれた際に、falseを返すのではなくTypeErrorが発生するように修正されました。

deno_std v0.186.0

deno_std v0.186.0がリリースされました。

std/path

sepが非推奨化されました。

今後はSEPの使用が推奨されます。

std/async

  • deadline.ts: signalオプションによるキャンセルがサポートされました。
  • pool.tsがブラウザ互換になりました。

std/http/method.tsの追加

isHttpMethodで与えられた文字列が正しいHTTPメソッドであるか判定できます。

import { isHttpMethod } from "https://deno.land/std@0.186.0/http/method.ts";

assert(isHttpMethod("GET"));
assert(isHttpMethod("POST"));
assert(!isHttpMethod("get"));
assert(!isHttpMethod("foo"));

std/http/file_server.ts

Rangeヘッダが仕様どおりにハンドリングされるように改善されました。

std/http/server.ts

serve()ですでに使用中のportを指定した際に、たまにAddrInUseではなくTypeError: Cannot read properties of undefined (reading 'port')が発生する問題が修正されました。

std/http/server_sent_event.ts

ServerSentEventeventInit引数を渡さずに作成すると、TypeErrorが発生する問題が修正されました。

std/uuid/constants.tsの追加

constants.tsが追加されました。

v3v5向けに事前定義された名前空間が提供されています。


https://www.ietf.org/rfc/rfc4122.html#appendix-C

esm.sh v118

esm.sh v118がリリースされました。

実験的なビルドAPIが追加されています。

import build from "https://esm.sh/build?pin=v118"

const ret = await build({
  dependencies: { "chalk": "5.2.0" },
  code: `
    import chalk from "chalk";
    export default () => chalk.blue("Hello World");
  `
});

const { default: hello } = await import(ret.bundleUrl);
console.log(hello());

deno compileでのnpmパッケージサポート

deno compileコマンドでのnpm:--node-modules-dirの実験的サポートに関する開発が進められているようです。

feat(compile): unstable npm and node specifier support #19005

このサポートが入ると、npmパッケージを使用したバイナリが作成できるようになりそうです。