Deno v1.33.2
Deno v1.33.2がリリースされました。
Deno KV
Deno.KvU64にvalueOf
/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
ServerSentEventをeventInit
引数を渡さずに作成すると、TypeErrorが発生する問題が修正されました。
std/uuid/constants.ts
の追加
constants.tsが追加されました。
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パッケージを使用したバイナリが作成できるようになりそうです。